Vydání frameworku pro vytváření síťových aplikací ErgoFramework 2.2

Byl vydán nový release ErgoFramework 2.2, který implementuje kompletní síťový stack Erlang a jeho knihovnu OTP v jazyce Go. Framework poskytuje vývojáři flexibilní nástroje z oblasti Erlang pro vytváření distribuovaných řešení v jazyce Go pomocí hotových návrhových šablon, jako jsou gen.Application, gen.Supervisor a gen.Server, stejně jako specializované šablony — gen.Stage (distribuované pub/sub), gen.Saga (distribuované transakce, implementace návrhového vzoru SAGA) a gen.Raft (implementace protokolu Raft).

Kromě toho framework poskytuje funkčnost proxy s možností end-to-end šifrování, které není dostupné v Erlang/OTP a Elixir. Vzhledem k tomu, že v jazyce Go neexistuje přímý ekvivalent procesu Erlang, používají se ve frameworku goroutine jako základ pro gen.Server s obalem „recover“ pro zpracování výjimečných situací. Kód projektu je šířen pod licencí MIT.

Síťový stack v ErgoFramework plně implementuje specifikaci DIST protokolu Erlang. To znamená, že aplikace napsané na základě ErgoFramework nativně pracují s jakýmikoli aplikacemi, napsanými v programovacích jazycích Erlang nebo Elixir (příklad interakce s Erlang nodem). Je také třeba poznamenat, že návrhový vzor gen.Stage je implementován podle specifikace Elixir GenStage a je plně kompatibilní s ním (příklad implementace).

V novém vydání:

  • Byly přidány nové šablony
    • gen.Web — návrhový vzor Web API Gateway (také známý jako Backend For Frontend). Příklad.
    • gen.TCP — vzor, který umožňuje realizovat pool akceptorů TCP spojení s minimálním úsilím při psaní kódu. Příklad.
    • gen.UDP — analogický vzor gen.TCP, pouze pro protokol UDP. Příklad.
  • Byla navržena nová funkčnost Events s implementací jednoduché událostní sběrnice uvnitř nody, která umožňuje vytvářet mechanismy pro výměnu událostí (pub/sub) mezi lokálními procesy. Příklad.
  • Byla přidána podpora pro registraci typů, která umožňuje automaticky provádět serializaci/deserializaci zpráv do nativního datového typu Golang. To znamená, že již není potřeba 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 nody.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster