Uscita del framework per la creazione di applicazioni di rete ErgoFramework 2.2

È stato rilasciato ErgoFramework 2.2, che implementa un'intera pila di rete Erlang e la sua libreria OTP in Go. Il framework fornisce agli sviluppatori strumenti flessibili dal mondo Erlang per creare soluzioni distribuite in Go utilizzando modelli di progettazione generali come gen.Application, gen.Supervisor e gen.Server, oltre a modelli specializzati come gen.Stage (pub/sub distribuito), gen.Saga (transazioni distribuite, implementazione del modello di progettazione SAGA) e gen.Raft (implementazione del protocollo Raft).

In aggiunta, il framework offre funzionalità proxy con crittografia end-to-end, non disponibili in Erlang/OTP e Elixir. Poiché non esiste un analogo diretto del processo Erlang in Go, il framework utilizza goroutine come base per gen.Server, con un wrapper 'recover' per gestire situazioni eccezionali. Il codice del progetto è distribuito con licenza MIT.

La pila di rete in ErgoFramework implementa completamente la specifica del protocollo DIST di Erlang. Questo significa che le applicazioni scritte utilizzando ErgoFramework funzionano nativamente con qualsiasi applicazione scritta in Erlang o Elixir (esempio di interazione con un nodo Erlang). È anche importante notare che il modello di progettazione gen.Stage è implementato secondo le specifiche di Elixir GenStage e completamente compatibile con esso (esempio di implementazione).

Nel nuovo rilascio:

  • Aggiunti nuovi modelli
    • gen.Web — modello di progettazione per Web API Gateway (noto anche come Backend For Frontend). Esempio.
    • gen.TCP — modello che consente di implementare un pool di accettatori di connessioni TCP con il minimo sforzo di scrittura del codice. Esempio.
    • gen.UDP — simile al modello gen.TCP, ma per il protocollo UDP. Esempio.
  • Introdotta una nuova funzionalità Events con l'implementazione di un semplice bus di eventi all'interno del nodo, che consente di creare meccanismi di scambio di eventi (pub/sub) tra processi locali. Esempio.
  • Aggiunta supporto per la registrazione dei tipi, che consente di effettuare automaticamente la serializzazione/deserializzazione dei messaggi nel tipo di dati nativo di Golang. Questo significa che non è più necessario utilizzare etf.TermIntoStruct per ogni messaggio ricevuto. I tipi registrati verranno trasformati automaticamente nel tipo desiderato, aumentando significativamente le performance dello scambio di messaggi tra nodi distribuiti.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster