Lansarea framework-ului pentru crearea de aplicații de rețea ErgoFramework 2.2

A avut loc o nouă lansare a ErgoFramework 2.2, care implementează stiva completă de rețea Erlang și biblioteca sa OTP în limbajul Go. Framework-ul oferă dezvoltatorilor un instrumentar flexibil din lumea Erlang pentru a crea soluții distribuite în Go, folosind șabloane de design de uz general gen.Application, gen.Supervisor și gen.Server, precum și specializate — gen.Stage (pub/sub distribuit), gen.Saga (tranzacții distribuite, implementarea șablonului de design SAGA) și gen.Raft (implementarea protocolului Raft).

În plus, framework-ul oferă funcționalitate de proxy cu posibilitatea de criptare end-to-end, indisponibilă în Erlang/OTP și Elixir. Deoarece în limbajul Go nu există un analog direct al procesului Erlang, framework-ul utilizează goroutine ca bază pentru gen.Server, cu o învelire „recover” pentru gestionarea excepțiilor. Codul proiectului este distribuit sub licența MIT.

Stiva de rețea din ErgoFramework implementează complet specificația protocolului DIST Erlang. Aceasta înseamnă că aplicațiile scrise pe baza ErgoFramework funcționează nativ cu orice aplicație scrisă în limbajele de programare Erlang sau Elixir (exemplu de interacțiune cu un nod Erlang). De asemenea, este de menționat că șablonul de design gen.Stage este implementat conform specificației Elixir GenStage și este complet compatibil cu acesta (exemplu de implementare).

În noua versiune:

  • Au fost adăugate noi șabloane
    • gen.Web — șablon de design pentru Web API Gateway (cunoscut și ca Backend For Frontend). Exemplu.
    • gen.TCP — șablon care permite implementarea unui pool de acceptori pentru conexiuni TCP cu minimală efort în scrierea codului. Exemplu.
    • gen.UDP — similar cu șablonul gen.TCP, dar pentru protocolul UDP. Exemplu.
  • A fost propusă o nouă funcționalitate Events cu implementarea unei magistrale simple de evenimente în interiorul nodului, care permite crearea de mecanisme de schimb de evenimente (pub/sub) între procesele locale. Exemplu.
  • A fost adăugat suport pentru înregistrarea tipurilor, care permite automatizarea procesului de serializare/deserializare a mesajelor în tipurile de date native Golang. Asta înseamnă că nu mai este necesar să folosești etf.TermIntoStruct pentru fiecare mesaj primit. Tipurile înregistrate vor fi transformate automat în tipul dorit, ceea ce accelerează semnificativ performanța schimbului de mesaje între nodurile distribuite.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster