A scalable real-time messaging server that delivers messages to online users via various supported transports.
Centrifugo is an open-source real-time messaging server that delivers messages to online users via various transport protocols. It operates as a user-facing PUB/SUB server, utilizing channel subscriptions to manage how data reaches connected clients. The software is deployed as a server and can be run via Docker, native binaries, or package managers, providing a centralized hub for event distribution.
This system is language-agnostic and integrates with any backend to support a wide range of use cases, including chat applications, live comments, multiplayer games, real-time data visualizations, and AI streaming responses. It decouples business logic from the transport layer, allowing the backend to communicate with the server through a simple HTTP or GRPC API while clients subscribe to channels using official SDKs or standard transport clients.
The architecture supports both JSON and binary Protobuf message transfer with optimized serialization and built-in batching. To simplify integration, official SDKs are available for JavaScript, Dart, Swift, Java, Python, and Go, though the server also supports a unidirectional approach that requires no SDK. This flexibility allows developers to choose between a rich bidirectional protocol or a simple stream of events. The system also includes a variety of channel permission strategies and a namespace concept to organize communication streams.
Centrifugo is designed for developers who need to scale concurrent connections and manage real-time event streaming without rebuilding the transport layer for every project. It serves as a dedicated infrastructure component for managing high-volume messaging and live data delivery.
Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.