Centrifugo est un serveur de messagerie en temps réel évolutif open source. Centrifugo peut transmettre instantanément des messages aux utilisateurs d'applications en ligne connectés via les transports pris en charge (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, WebTransport). Centrifugo a le concept d'abonnements aux chaînes – il s'agit donc d'un serveur PUB/SUB destiné aux utilisateurs.
Centrifugo est indépendant du langage et peut être utilisé pour créer des applications de chat, des commentaires en direct, des jeux multijoueurs, des visualisations de données en temps réel, des outils collaboratifs, etc. en combinaison avec n'importe quel backend. Il est bien adapté aux architectures modernes et permet de découpler la logique métier de la couche transport temps réel.
Plusieurs SDK clients officiels pour le développement de navigateurs et de mobiles intègrent le protocole bidirectionnel. De plus, Centrifugo prend en charge une approche unidirectionnelle pour les cas d'utilisation simples sans dépendance au SDK.
L'idée de base de Centrifugo est simple : il s'agit d'un serveur PUB/SUB au-dessus des transports modernes en temps réel :
Le plus difficile est de rendre ce concept prêt pour la production, efficace, flexible et disponible à partir de différents environnements d'application. Centrifugo est une solution mature qui a déjà aidé de nombreux projets en ajoutant des fonctionnalités en temps réel et en évoluant vers de nombreuses connexions simultanées. Centrifugo fournit un ensemble de fonctionnalités non disponibles dans d'autres solutions open source du domaine :
Ce référentiel est hébergé par packagecloud.io.
Merci également à JetBrains pour la prise en charge d'OSS (la plupart du code écrit ici en Goland) :