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