Vydanie frameworku pre tvorbu sieťových aplikácií ErgoFramework 2.2

Uskutočnilo sa ďalšie vydanie ErgoFramework 2.2, ktoré implementovalo kompletný sieťový zásobník Erlang a jeho knižnicu OTP v jazyku Go. Framework poskytuje vývojárom flexibilné nástroje zo sveta Erlang na vytváranie distribuovaných riešení v jazyku Go pomocou hotových všeobecných návrhových vzorov gen.Application, gen.Supervisor a gen.Server, ako aj špecializovaných - gen. Stage (distribuovaný pub/sub), gen.Saga (distribuované transakcie, implementácia dizajnového vzoru SAGA) a gen.Raft (implementácia protokolu Raft).

Okrem toho poskytuje rámec proxy funkčnosť s end-to-end šifrovaním, ktoré nie je dostupné v Erlang/OTP a Elixir. Keďže jazyk Go nemá priamu analógiu k procesu Erlang, framework používa goroutiny ako základ pre gen.Server s „obnovovacím“ obalom na zvládnutie výnimočných situácií. Kód projektu je distribuovaný pod licenciou MIT.

Sieťový zásobník v ErgoFramework plne implementuje špecifikáciu DIST protokolu Erlang. To znamená, že aplikácie napísané na základe ErgoFramework natívne fungujú s akýmikoľvek aplikáciami napísanými v programovacích jazykoch Erlang alebo Elixir ​​(príklad interakcie s uzlom Erlang). Za zmienku tiež stojí, že návrhový vzor gen.Stage je implementovaný podľa špecifikácie Elixir GenStage a je s ňou plne kompatibilný (príklad implementácie).

V novom vydaní:

  • Pridané nové šablóny
    • gen.Web je návrhový vzor Web API Gateway (známy aj ako Backend For Frontend). Príklad.
    • gen.TCP je šablóna, ktorá vám umožňuje implementovať skupinu akceptorov pripojenia TCP s minimálnym úsilím pri písaní kódu. Príklad.
    • gen.UDP - podobná šablóne gen.TCP, len pre protokol UDP. Príklad.
  • Bola navrhnutá nová funkcionalita udalostí s implementáciou jednoduchej zbernice udalostí vo vnútri uzla, ktorá vám umožňuje vytvárať mechanizmy na výmenu udalostí (pub/sub) medzi lokálnymi procesmi. Príklad.
  • Pridaná podpora pre registráciu typu, ktorá umožňuje automatickú serializáciu/deserializáciu správ do natívneho dátového typu Golang. To znamená, že už nemusíte používať etf.TermIntoStruct pre každú prijatú správu. Registrované typy budú transformované na zadaný typ automaticky, čo výrazne urýchľuje výkon výmeny správ medzi distribuovanými uzlami.

Zdroj: opennet.ru

Pridať komentár