Frigivelse af rammen for oprettelse af netværksapplikationer ErgoFramework 2.2

Den næste udgivelse af ErgoFramework 2.2 fandt sted, og implementerede den komplette Erlang-netværksstack og dets OTP-bibliotek i Go-sproget. Rammerne giver udvikleren fleksible værktøjer fra Erlangs verden til at skabe distribuerede løsninger i Go-sproget ved hjælp af færdige, generelle designmønstre gen.Application, gen.Supervisor og gen.Server, samt specialiserede - gen. Stage (distribueret pub/sub), gen. Saga (distribuerede transaktioner, en implementering af SAGA-designmønsteret) og gen.Raft (en implementering af Raft-protokollen).

Derudover giver frameworket proxy-funktionalitet med end-to-end-kryptering, som ikke er tilgængelig i Erlang/OTP og Elixir. Da Go-sproget ikke har en direkte analog til Erlang-processen, bruger frameworket goroutiner som grundlag for gen.Server med en "recover"-indpakning til at håndtere undtagelsessituationer. Projektkoden distribueres under MIT-licensen.

Netværksstakken i ErgoFramework implementerer fuldt ud DIST-specifikationen for Erlang-protokollen. Det betyder, at applikationer skrevet på basis af ErgoFramework fungerer indbygget med alle applikationer skrevet i programmeringssprogene Erlang eller Elixir (et eksempel på interaktion med en Erlang-node). Det er også værd at bemærke, at gen.Stage-designmønsteret er implementeret i henhold til Elixir GenStage-specifikationen og er fuldt kompatibelt med det (implementeringseksempel).

I den nye udgivelse:

  • Nye skabeloner tilføjet
    • gen.Web er et Web API Gateway (også kendt som Backend For Frontend) designmønster. Eksempel.
    • gen.TCP er en skabelon, der giver dig mulighed for at implementere en pulje af TCP-forbindelsesacceptorer med minimal indsats i at skrive kode. Eksempel.
    • gen.UDP - svarende til gen.TCP-skabelonen, kun for UDP-protokollen. Eksempel.
  • En ny begivenhedsfunktionalitet er blevet foreslået med implementering af en simpel begivenhedsbus inde i en node, som giver dig mulighed for at skabe mekanismer til udveksling af begivenheder (pub/under) mellem lokale processer. Eksempel.
  • Tilføjet understøttelse af typeregistrering, som tillader automatisk serialisering/deserialisering af meddelelser til en indbygget Golang-datatype. Det betyder, at du ikke længere behøver at bruge etf.TermIntoStruct for hver modtaget besked. Registrerede typer vil automatisk blive transformeret til den specificerede type, hvilket markant fremskynder ydelsen af ​​meddelelsesudveksling mellem distribuerede noder.

Kilde: opennet.ru

Tilføj en kommentar