The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск фреймворка для создания сетевых приложений ErgoFramework 2.2

18.10.2022 14:25

Состоялся очередной релиз ErgoFramework 2.2, реализующего полный сетевой стек Erlang и его библиотеку OTP на языке Go. Фреймворк предоставляет разработчику гибкий инструментарий из мира Erlang для создания распределённых решений на языке Go с помощью готовых шаблонов проектирования общего назначения gen.Application, gen.Supervisor и gen.Server, а также специализированных - gen.Stage (distributed pub/sub), gen.Saga (distributed transactions, реализация шаблона проектирования 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 для каждого полученного сообщения. Зарегистрированные типы будут трансформированы в заданный тип автоматически, что значительно ускоряет производительность обмена сообщениями между распределёнными нодами.


  1. Главная ссылка к новости (https://github.com/ergo-servic...)
  2. OpenNews: Релиз Erlang/OTP 25
  3. OpenNews: Facebook выделил C++, Rust, Python и Hack в качестве предпочтительных языков программирования
  4. OpenNews: Кандидат в релизы web-фреймворка Zotonic, написанного на языке Erlang
  5. OpenNews: Новый выпуск фреймворка для создания сетевых приложений Ergo 1.2
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57933-ergo
Ключевые слова: ergo, erlang, golang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (18) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:15, 18/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Круто!
    Интересно а аналог такой штуки есть в мире .net?
     
     
  • 2.3, Минона (ok), 15:17, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Акторная модель много где реализована.
    А аналога ОТР не видел.
     
  • 2.5, Аноним (5), 15:35, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    .net не функциональный язык. В Функциональных языках нет парадигмы присваивания, а значит они очень хорошо.  Аналог на не функциональном языке написать невозможно даже на Карбоне.
     
     
  • 3.9, Аноним (9), 16:06, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    .NET вообще не язык, а F# вполне себе
     
  • 3.20, Аноним (20), 20:43, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Бред больного. Под капотом у твоего функционально го яп что? Правильно, обычная императивщина.
     
  • 2.15, Denis Ivanov (?), 17:39, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Orleans, akka.net
     
     
  • 3.21, Коломбо (?), 22:46, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Есть ещё неплохой proto.actor (для .NET, Go, Kotlin) от одного из создателей akka.net, но это всё-таки не совсем альтернатива OTP.
     

  • 1.2, Минона (ok), 15:16, 18/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Молодец! 👍
     
  • 1.4, Аноним (4), 15:30, 18/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Как по производительности в сравнении с нодой например?
     
     
  • 2.6, Аноним (5), 15:35, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чтобы оно было лучше надо надо очень много железа.
     
     
  • 3.11, НяшМяш (ok), 16:39, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > надо больше одного ядра

    Пофиксил. Жаль не каждому онаниму такая роскошь доступна.

     
     
  • 4.23, Аноним (23), 00:00, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Где такие роскошества в наше время взять. Всё на самых дешевых впсках крутится.
     
     
  • 5.29, НяшМяш (ok), 18:32, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Впска с двумя ядрами стоит от 200 рублей. Вполне можно себе позволить.
     
  • 2.14, Мимокрокодил (?), 17:29, 18/10/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В сравнении с эрланговой? В разы быстрее. У ерланга сетевой стек медленный, впрочем как и его бим машина. Бенчи показывают в среднем в 5 раз быстрее ерланга в части сетевого обмена сообщениями
     

  • 1.25, Аноним (25), 00:50, 19/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    EroFramework на Rust будет?
     
     
  • 2.28, Аноним (28), 09:01, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Прям этот фреймворк и на расте, чтобы прям с эрланговскими нодами работало по их... большой текст свёрнут, показать
     

  • 1.27, Ддд (?), 06:35, 19/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Непонятная штука. Видимо пригодится для спаривания ерланга и го если не хочется грпц и нгинксов. Но нет, спасибо
     
     
  • 2.30, Аноним (30), 23:45, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты ерланг с отп в глаза не видел, но судить берешься. классика опеннет
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру