إصدار إطار عمل إنشاء تطبيقات الشبكة ErgoFramework 2.2

تم إطلاق الإصدار التالي من ErgoFramework 2.2، حيث تم تنفيذ حزمة شبكة Erlang الكاملة ومكتبة OTP الخاصة بها بلغة Go. يوفر إطار العمل للمطور أدوات مرنة من عالم Erlang لإنشاء حلول موزعة بلغة Go باستخدام أنماط تصميم جاهزة للأغراض العامة gen.Application وgen.Supervisor وgen.Server، بالإضافة إلى الأنماط المتخصصة - gen. المرحلة (نشرة/فرعية موزعة)، وgen.Saga (المعاملات الموزعة، وتنفيذ نمط تصميم SAGA) وgen.Raft (تنفيذ بروتوكول Raft).

بالإضافة إلى ذلك، يوفر الإطار وظيفة الوكيل مع التشفير الشامل، وهو أمر غير متوفر في Erlang/OTP وElixir. نظرًا لأن لغة Go لا تحتوي على نظير مباشر لعملية Erlang، فإن إطار العمل يستخدم goroutines كأساس لـ gen.Server مع غلاف "استرداد" للتعامل مع حالات الاستثناء. يتم توزيع رمز المشروع بموجب ترخيص MIT.

تقوم حزمة الشبكة في ErgoFramework بتنفيذ مواصفات DIST الخاصة ببروتوكول Erlang بشكل كامل. وهذا يعني أن التطبيقات المكتوبة على أساس ErgoFramework تعمل بشكل أصلي مع أي تطبيقات مكتوبة بلغات برمجة Erlang أو Elixir (مثال للتفاعل مع عقدة Erlang). ومن الجدير بالذكر أيضًا أن نمط تصميم gen.Stage يتم تنفيذه وفقًا لمواصفات Elixir GenStage وهو متوافق تمامًا معها (مثال التنفيذ).

في الإصدار الجديد:

  • تمت إضافة قوالب جديدة
    • gen.Web هو نمط تصميم بوابة Web API (المعروف أيضًا باسم Backend For Frontend). مثال.
    • gen.TCP هو قالب يسمح لك بتنفيذ مجموعة من متقبلات اتصال TCP بأقل جهد في كتابة التعليمات البرمجية. مثال.
    • gen.UDP - مشابه لقالب gen.TCP، فقط لبروتوكول UDP. مثال.
  • تم اقتراح وظيفة أحداث جديدة مع تنفيذ ناقل أحداث بسيط داخل العقدة، مما يسمح لك بإنشاء آليات لتبادل الأحداث (pub/sub) بين العمليات المحلية. مثال.
  • تمت إضافة دعم لتسجيل النوع، والذي يسمح بالتسلسل/إلغاء التسلسل التلقائي للرسائل في نوع بيانات Golang الأصلي. هذا يعني أنك لم تعد بحاجة إلى استخدام etf.TermIntoStruct لكل رسالة يتم تلقيها. سيتم تحويل الأنواع المسجلة إلى النوع المحدد تلقائيًا، مما يؤدي إلى تسريع أداء تبادل الرسائل بين العقد الموزعة بشكل كبير.

المصدر: opennet.ru

إضافة تعليق