Udgivelsen af rammeværket til oprettelse af netværksapplikationer ErgoFramework 2.2

ErgoFramework 2.2 er blevet frigivet og implementerer den komplette netværkstekst af Erlang og dens OTP bibliotek på Go-sprog. Frameworket giver udviklere fleksible værktøjer fra Erlang-verdenen til at skabe distribuerede løsninger i Go ved hjælp af færdige designmønstre som gen.Application, gen.Supervisor og gen.Server, samt specialiserede — gen.Stage (distributed pub/sub), gen.Saga (distributed transactions, implementering af SAGA designmønstret) og gen.Raft (implementering af Raft-protokollen).

Derudover tilbyder frameworket proxy-funktionalitet med end-to-end kryptering, der ikke er tilgængelig i Erlang/OTP og Elixir. Da Go-sproget ikke har en direkte ækvivalent til Erlang-processen, anvender frameworket goroutines som grundlag for gen.Server med en 'recover'-wrapper til håndtering af undtagelsessituationer. Projektets kode distribueres under MIT-licensen.

Netværksteksten i ErgoFramework implementerer fuldt ud specifikationen for DIST-protokollen i Erlang. Dette betyder, at applikationer, der er bygget på ErgoFramework, fungerer nativt med alle applikationer skrevet i programmeringssprogene Erlang eller Elixir (eksempel på interaktion med en Erlang-node). Det er også værd at bemærke, at designmønstret gen.Stage er implementeret i henhold til specifikationen for Elixir GenStage og er fuldt kompatibel med det (eksempel på implementering).

I den nye version:

  • Nye skabeloner er blevet tilføjet
    • gen.Web — designmønster til Web API Gateway (også kendt som Backend For Frontend). Eksempel.
    • gen.TCP — skabelon, der muliggør oprettelse af en pulje af TCP-acceptorer med minimal kodeindsats. Eksempel.
    • gen.UDP — svarer til skabelonen gen.TCP, men for UDP-protokollen. Eksempel.
  • En ny funktionalitet Events med implementering af en simpel begivenhedsbuss inden for noden er blevet foreslået, hvilket muliggør oprettelse af mekanismer til begivenhedshåndtering (pub/sub) blandt lokale processer. Eksempel.
  • Støtte til registrering af typer er blevet tilføjet, hvilket gør det muligt at udføre automatisk serialisering/deserialisering af beskeder til den native datatypen i Golang. Det betyder, at man ikke længere behøver at bruge etf.TermIntoStruct for hver modtaget besked. Registrerede typer vil automatisk blive transformeret til den angivne type, hvilket betydeligt øger ydeevnen af beskedudvekslingen mellem distribuerede noder.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster