Vrystelling van die raamwerk vir die skep van netwerktoepassings ErgoFramework 2.2

Die volgende vrystelling van ErgoFramework 2.2 het plaasgevind, met die implementering van die volledige Erlang-netwerkstapel en sy OTP-biblioteek in die Go-taal. Die raamwerk bied aan die ontwikkelaar buigsame gereedskap uit die wêreld van Erlang vir die skep van verspreide oplossings in die Go-taal deur gebruik te maak van klaargemaakte algemene ontwerppatrone gen.Application, gen.Supervisor en gen.Server, sowel as gespesialiseerdes - gen. Stage (verspreide kroeg/sub), genl. Saga (verspreide transaksies, 'n implementering van die SAGA-ontwerppatroon) en gen.Raft ('n implementering van die Raft-protokol).

Boonop bied die raamwerk instaanbedienerfunksies met end-tot-end-enkripsie, wat nie in Erlang/OTP en Elixir beskikbaar is nie. Aangesien die Go-taal nie 'n direkte analoog van die Erlang-proses het nie, gebruik die raamwerk goroutines as basis vir gen.Server met 'n "herstel"-omhulsel om uitsonderingsituasies te hanteer. Die projekkode word onder die MIT-lisensie versprei.

Die netwerkstapel in ErgoFramework implementeer die DIST-spesifikasie van die Erlang-protokol ten volle. Dit beteken dat toepassings wat op grond van ErgoFramework geskryf is, inheems werk met enige toepassings wat in die Erlang- of Elixir-programmeertale geskryf is ('n voorbeeld van interaksie met 'n Erlang-nodus). Dit is ook opmerklik dat die gen.Stage-ontwerppatroon volgens die Elixir GenStage-spesifikasie geïmplementeer is en ten volle daarmee versoenbaar is (implementeringsvoorbeeld).

In die nuwe vrystelling:

  • Nuwe sjablone bygevoeg
    • gen.Web is 'n Web API Gateway (ook bekend as Backend For Frontend) ontwerppatroon. Voorbeeld.
    • gen.TCP is 'n sjabloon wat jou toelaat om 'n poel TCP-verbindingsaannemers te implementeer met minimale moeite om kode te skryf. Voorbeeld.
    • gen.UDP - soortgelyk aan die gen.TCP-sjabloon, slegs vir die UDP-protokol. Voorbeeld.
  • 'n Nuwe Gebeurtenis-funksie is voorgestel met die implementering van 'n eenvoudige gebeurtenisbus binne 'n nodus, wat jou toelaat om meganismes te skep vir die uitruil van gebeurtenisse (kroeg/sub) tussen plaaslike prosesse. Voorbeeld.
  • Bygevoeg ondersteuning vir tipe registrasie, wat outomatiese serialisering/deserialisering van boodskappe in 'n inheemse Golang-datatipe moontlik maak. Dit beteken dat jy nie meer etf.TermIntoStruct hoef te gebruik vir elke boodskap wat ontvang word nie. Geregistreerde tipes sal outomaties na die gespesifiseerde tipe omskep word, wat die werkverrigting van boodskapuitruiling tussen verspreide nodusse aansienlik versnel.

Bron: opennet.ru

Voeg 'n opmerking