Publication du framework pour la création d'applications réseau ErgoFramework 2.2

La nouvelle version d'ErgoFramework 2.2 a été publiée, implémentant une pile réseau complète d'Erlang et sa bibliothèque OTP en Go. Le framework offre aux développeurs un ensemble d'outils flexibles issus du monde d'Erlang pour créer des solutions distribuées en Go à l'aide de modèles de conception génériques tels que gen.Application, gen.Supervisor et gen.Server, ainsi que des modèles spécialisés — gen.Stage (pub/sub distribué), gen.Saga (transactions distribuées, mise en œuvre du modèle de conception SAGA) et gen.Raft (implémentation du protocole Raft).

De plus, le framework propose une fonctionnalité de proxy avec chiffrement de bout en bout, qui n'est pas disponible dans Erlang/OTP et Elixir. Étant donné qu'il n'existe pas d'analogue direct du processus Erlang en Go, le framework utilise des goroutines comme base pour gen.Server avec une enveloppe « recover » pour traiter les situations exceptionnelles. Le code du projet est distribué sous licence MIT.

La pile réseau dans ErgoFramework implémente entièrement la spécification du protocole DIST d'Erlang. Cela signifie que les applications basées sur ErgoFramework fonctionnent nativement avec toutes les applications écrites en Erlang ou Elixir (exemple d'interaction avec un nœud Erlang). Il convient également de noter que le modèle de conception gen.Stage est implémenté selon la spécification d'Elixir GenStage et est entièrement compatible avec celui-ci (exemple d'implémentation).

Dans cette nouvelle version :

  • De nouveaux modèles ont été ajoutés
    • gen.Web — modèle de conception Web API Gateway (également connu sous le nom de Backend For Frontend). Exemple.
    • gen.TCP — un modèle permettant de mettre en œuvre un pool d'acceptateurs de connexions TCP avec un minimum d'efforts de codage. Exemple.
    • gen.UDP — similaire au modèle gen.TCP, mais pour le protocole UDP. Exemple.
  • Une nouvelle fonctionnalité Events a été proposée, avec la mise en œuvre d'un bus d'événements simple au sein d'un nœud, permettant de créer des mécanismes d'échange d'événements (pub/sub) entre des processus locaux. Exemple.
  • Le support de l'enregistrement des types a été ajouté, permettant la sérialisation/désérialisation automatique des messages dans le type de données natif de Golang. Cela signifie qu'il n'est plus nécessaire d'utiliser etf.TermIntoStruct pour chaque message reçu. Les types enregistrés seront transformés automatiquement en type donné, ce qui améliore considérablement les performances des échanges de messages entre nœuds distribués.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster