Vydání frameworku pro tvorbu síťových aplikací ErgoFramework 2.2

Proběhlo další vydání ErgoFramework 2.2, které implementovalo kompletní síťový zásobník Erlang a jeho knihovnu OTP v jazyce Go. Framework poskytuje vývojářům flexibilní nástroje ze světa Erlang pro vytváření distribuovaných řešení v jazyce Go pomocí hotových univerzálních návrhových vzorů gen.Application, gen.Supervisor a gen.Server i specializovaných - gen. Stage (distribuované pub/sub), gen. Saga (distribuované transakce, implementace návrhového vzoru SAGA) a gen.Raft (implementace protokolu Raft).

Kromě toho rámec poskytuje funkce proxy s end-to-end šifrováním, které není k dispozici v Erlang/OTP a Elixir. Vzhledem k tomu, že jazyk Go nemá přímou analogii procesu Erlang, framework používá goroutiny jako základ pro gen.Server s „obnovovacím“ obalem pro řešení výjimečných situací. Kód projektu je distribuován pod licencí MIT.

Síťový zásobník v ErgoFramework plně implementuje specifikaci DIST protokolu Erlang. To znamená, že aplikace napsané na základě ErgoFramework nativně spolupracují s jakýmikoli aplikacemi napsanými v programovacích jazycích Erlang nebo Elixir (příklad interakce s uzlem Erlang). Za zmínku také stojí, že návrhový vzor gen.Stage je implementován podle specifikace Elixir GenStage a je s ní plně kompatibilní (příklad implementace).

V novém vydání:

  • Přidány nové šablony
    • gen.Web je návrhový vzor Web API Gateway (také známý jako Backend For Frontend). Příklad.
    • gen.TCP je šablona, ​​která umožňuje implementovat skupinu akceptorů připojení TCP s minimálním úsilím při psaní kódu. Příklad.
    • gen.UDP - obdoba šablony gen.TCP, pouze pro protokol UDP. Příklad.
  • Byla navržena nová funkce Events s implementací jednoduché sběrnice událostí uvnitř uzlu, která umožňuje vytvářet mechanismy pro výměnu událostí (pub/sub) mezi lokálními procesy. Příklad.
  • Přidána podpora pro registraci typu, která umožňuje automatickou serializaci/deserializaci zpráv do nativního datového typu Golang. To znamená, že již nemusíte používat etf.TermIntoStruct pro každou přijatou zprávu. Registrované typy budou automaticky transformovány na zadaný typ, což výrazně zrychlí výkon výměny zpráv mezi distribuovanými uzly.

Zdroj: opennet.ru

Přidat komentář