Liberazione di u quadru per creà applicazioni di rete ErgoFramework 2.2

A prossima versione di ErgoFramework 2.2 hè stata fatta, implementendu a pila di rete Erlang cumpleta è a so libreria OTP in a lingua Go. U quadru furnisce u sviluppatore cù arnesi flessibili da u mondu di Erlang per creà suluzioni distribuite in a lingua Go usendu mudelli di cuncepimentu generale pronti gen.Application, gen.Supervisor è gen.Server, è ancu spicializati - gen. Stage (distributed pub / sub), gen Saga (transazzione distribuitu, una implementazione di u mudellu di design SAGA) è gen.Raft (una implementazione di u protocolu Raft).

Inoltre, u quadru furnisce funziunalità proxy cù criptografia end-to-end, chì ùn hè micca dispunibule in Erlang / OTP è Elixir. Siccomu a lingua Go ùn hà micca un analogu direttu di u prucessu Erlang, u framework usa goroutines cum'è a basa per gen.Server cun un wrapper "ricuperà" per trattà situazioni eccezzioni. U codice di u prugettu hè distribuitu sottu a licenza MIT.

A pila di rete in ErgoFramework implementa cumplettamente a specificazione DIST di u protocolu Erlang. Questu significa chì l'applicazioni scritte nantu à a basa di ErgoFramework funzionanu nativamente cù qualsiasi applicazioni scritte in i linguaggi di prugrammazione Erlang o Elixir (un esempiu di interazzione cù un node Erlang). Hè nutate ancu chì u mudellu di design gen.Stage hè implementatu secondu a specificazione Elixir GenStage è hè cumplettamente cumpatibile cù questu (esempiu di implementazione).

In a nova versione:

  • Nuvelli mudelli aghjuntu
    • gen.Web hè un mudellu di disignu Web API Gateway (cunnisciutu ancu Backend For Frontend). Esempiu.
    • gen.TCP hè un mudellu chì permette di implementà una piscina di accettatori di cunnessione TCP cù un minimu sforzu in scrittura di codice. Esempiu.
    • gen.UDP - simile à u mudellu gen.TCP, solu per u protocolu UDP. Esempiu.
  • Una nova funziunalità di l'Eventi hè stata pruposta cù l'implementazione di un busu d'avvenimentu simplice in un node, chì permette di creà miccanismi per scambià avvenimenti (pub/sub) trà i prucessi lucali. Esempiu.
  • Aghjunghje supportu per a registrazione di u tipu, chì permette a serializazione / deserializazione automatica di i missaghji in un tipu di dati nativu Golang. Questu significa chì ùn avete più bisognu di utilizà etf.TermIntoStruct per ogni missaghju ricevutu. I tipi registrati seranu trasfurmati in u tipu specificatu automaticamente, chì accelera significativamente a prestazione di u scambiu di messagi trà i nodi distribuiti.

Source: opennet.ru

Add a comment