Издаване на рамката за създаване на мрежови приложения ErgoFramework 2.2

Състоя се поредният релиз на ErgoFramework 2.2, който реализира пълен мрежов стек на Erlang и неговата библиотека OTP на езика Go. Фреймуъркът предоставя на разработчиците гъвкави инструменти от света на Erlang за създаване на разпределени решения на езика Go с помощта на готови шаблони за проектиране, като gen.Application, gen.Supervisor и gen.Server, както и специализирани — gen.Stage (разпределено pub/sub), gen.Saga (разпределени транзакции, реализация на шаблон за проектиране SAGA) и gen.Raft (реализация на протокола Raft).

Освен това, фреймуъркът предлага функционалност на прокси с възможност за крайно криптиране, която не е налична в Erlang/OTP и Elixir. Тъй като в езика Go няма директен аналог на процеса в Erlang, във фреймуърка се използват goroutine като основа за gen.Server с обвивка "recover" за възможност за обработка на изключителни ситуации. Кодът на проекта се разпространява под лицензия MIT.

Мрежовият стек в ErgoFramework напълно реализира спецификацията на DIST протокола на Erlang. Това означава, че приложения, написани на основата на ErgoFramework, нативно работят с всякакви приложения, написани на програмни езици Erlang или Elixir (пример за взаимодействие с Erlang възел). Също така е важно да се отбележи, че шаблонът за проектиране gen.Stage е реализиран по спецификацията на Elixir GenStage и е напълно съвместим с него (пример за реализиране).

В новото издание:

  • Добавени са нови шаблони
    • gen.Web — шаблон за проектиране на Web API Gateway (известен още като Backend For Frontend). Пример.
    • gen.TCP — шаблон, който позволява да се реализира пул от акцептори на TCP връзки с минимални усилия в написването на код. Пример.
    • gen.UDP — аналогичен на шаблона gen.TCP, само че за протокола UDP. Пример.
  • Предложена е нова функционалност Events с реализация на прост събитийни шина вътре в възела, която позволява създаването на механизми за обмен на събития (pub/sub) сред местни процеси. Пример.
  • Добавена е поддръжка за регистрация на типове, която позволява автоматично сериализиране/десериализиране на съобщения в нативни типове данни на Golang. Това означава, че вече не е необходимо да се използва etf.TermIntoStruct за всяко получено съобщение. Регистрираните типове ще бъдат трансформирани в зададения тип автоматично, което значително ускорява производителността на обмена на съобщения между разпределените възли.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster