Izdanje okvira za izradu mrežnih aplikacija ErgoFramework 2.2

Došlo je do sljedećeg izdanja ErgoFrameworka 2.2, implementiranog kompletnog mrežnog stoga Erlanga i njegove OTP biblioteke u jeziku Go. Framework pruža programeru fleksibilne alate iz svijeta Erlanga za kreiranje distribuiranih rješenja u Go jeziku korištenjem gotovih dizajnerskih obrazaca opće namjene gen.Application, gen.Supervisor i gen.Server, kao i specijaliziranih - gen. Stage (distribuirani pub/sub), gen. Saga (distribuirane transakcije, implementacija SAGA uzorka dizajna) i gen.Raft (implementacija Raft protokola).

Osim toga, okvir pruža proxy funkcionalnost s end-to-end enkripcijom, koja nije dostupna u Erlang/OTP i Elixir. Budući da Go jezik nema izravnu analogiju Erlang procesa, okvir koristi goroutine kao osnovu za gen.Server s omotom za "oporavak" za rukovanje iznimnim situacijama. Kod projekta se distribuira pod licencom MIT-a.

Mrežni stog u ErgoFrameworku u potpunosti implementira DIST specifikaciju Erlang protokola. To znači da aplikacije napisane na temelju ErgoFramework-a rade nativno sa svim aplikacijama napisanim u programskim jezicima Erlang ili Elixir (primjer interakcije s Erlang čvorom). Također je vrijedno napomenuti da je uzorak dizajna gen.Stage implementiran prema specifikaciji Elixir GenStage i potpuno je kompatibilan s njom (primjer implementacije).

U novom izdanju:

  • Dodani novi predlošci
    • gen.Web je web API Gateway (također poznat kao Backend For Frontend) dizajn obrazac. Primjer.
    • gen.TCP je predložak koji vam omogućuje implementaciju skupa prihvatitelja TCP veze uz minimalan napor u pisanju koda. Primjer.
    • gen.UDP - sličan predlošku gen.TCP, samo za UDP protokol. Primjer.
  • Predložena je nova funkcionalnost događaja s implementacijom jednostavne sabirnice događaja unutar čvora, koja vam omogućuje stvaranje mehanizama za razmjenu događaja (pub/sub) među lokalnim procesima. Primjer.
  • Dodana podrška za registraciju tipa, koja omogućuje automatsku serijalizaciju/deserijalizaciju poruka u nativni Golang tip podataka. To znači da više ne morate koristiti etf.TermIntoStruct za svaku primljenu poruku. Registrirani tipovi će se automatski transformirati u navedeni tip, što značajno ubrzava izvedbu razmjene poruka između distribuiranih čvorova.

Izvor: opennet.ru

Dodajte komentar