Sortie du framework de création d'applications réseau ErgoFramework 2.2

ErgoFramework 2.2, une implémentation Go de la pile réseau Erlang complète et de sa bibliothèque OTP, est désormais disponible. Ce framework offre aux développeurs une boîte à outils Erlang flexible pour la création de solutions distribuées en Go. Il utilise des modèles de conception génériques prêts à l'emploi : gen.Application, gen.Supervisor et gen.Server, ainsi que des modèles spécialisés : gen.Stage (publication/abonnement distribué), gen.Saga (transactions distribuées, implémentation du modèle SAGA) et gen.Raft (implémentation du protocole Raft).

De plus, le framework offre une fonctionnalité de proxy avec chiffrement de bout en bout, indisponible dans Erlang/OTP et Elixir. Go ne disposant pas d'un équivalent direct du module `process` d'Erlang, le framework utilise des goroutines comme base pour `gen.Server`, avec un wrapper « recover » pour gérer les exceptions. Le code du projet est distribué sous licence MIT.

La pile réseau ErgoFramework implémente intégralement la spécification du protocole DIST d'Erlang. Ainsi, les applications écrites avec ErgoFramework interagissent nativement avec toutes les applications écrites en Erlang ou Elixir (voir un exemple d'interaction avec un nœud Erlang). Il est également important de noter que le patron de conception gen.Stage est implémenté conformément à la spécification GenStage d'Elixir et est entièrement compatible avec celle-ci (voir un exemple d'implémentation).

Dans la nouvelle version :

  • De nouveaux modèles ont été ajoutés.
    • gen.Web est un modèle de conception de passerelle API Web (également connu sous le nom de Backend pour Frontend). Exemple.
    • gen.TCP est un modèle qui vous permet d'implémenter un pool d'accepteurs de connexions TCP avec un minimum d'effort de codage. Exemple.
    • gen.UDP - similaire au modèle gen.TCP, mais pour le protocole UDP. Exemple.
  • Une nouvelle fonctionnalité d'événements est proposée, implémentant un bus d'événements simple au sein d'un nœud, permettant la création de mécanismes d'échange d'événements de type publication/abonnement entre les processus locaux. Exemple.
  • Prise en charge de l'enregistrement des types, permettant la sérialisation/désérialisation automatique des messages en types de données natifs Go. Il n'est donc plus nécessaire d'utiliser `etf.TermIntoStruct` pour chaque message reçu. Les types enregistrés seront automatiquement transformés en type spécifié, ce qui accélère considérablement les échanges de messages entre les nœuds distribués.

Source: opennet.ru

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