Centrifugo ist ein skalierbarer Open-Source-Echtzeit-Messaging-Server. Centrifugo kann Nachrichten sofort an Anwendungs-Online-Benutzer senden, die über unterstützte Transporte (WebSocket, HTTP-Streaming, SSE/EventSource, GRPC, WebTransport) verbunden sind. Centrifugo basiert auf dem Konzept der Kanalabonnements – es handelt sich also um einen benutzerorientierten PUB/SUB-Server.
Centrifugo ist sprachunabhängig und kann in Kombination mit jedem Backend zum Erstellen von Chat-Apps, Live-Kommentaren, Multiplayer-Spielen, Echtzeit-Datenvisualisierungen, Tools für die Zusammenarbeit usw. verwendet werden. Es eignet sich gut für moderne Architekturen und ermöglicht die Entkopplung der Geschäftslogik von der Echtzeit-Transportschicht.
Mehrere offizielle Client-SDKs für die Browser- und Mobilentwicklung umschließen das bidirektionale Protokoll. Darüber hinaus unterstützt Centrifugo einen unidirektionalen Ansatz für einfache Anwendungsfälle ohne SDK-Abhängigkeit.
Die Kernidee von Centrifugo ist einfach – es handelt sich um einen PUB/SUB-Server auf Basis moderner Echtzeittransporte:
Der schwierige Teil besteht darin, dieses Konzept produktionsreif, effizient, flexibel und in verschiedenen Anwendungsumgebungen verfügbar zu machen. Centrifugo ist eine ausgereifte Lösung, die bereits vielen Projekten durch die Hinzufügung von Echtzeitfunktionen und die Skalierung auf viele gleichzeitige Verbindungen geholfen hat. Centrifugo bietet eine Reihe von Funktionen, die in anderen Open-Source-Lösungen in diesem Bereich nicht verfügbar sind:
Dieses Repository wird von packagecloud.io gehostet.
Vielen Dank auch an JetBrains für die Unterstützung von OSS (der größte Teil des Codes ist hier in Goland geschrieben):