Centrifugo
Centrifugo is a self-hosted, language-agnostic real-time messaging server that pushes messages to browsers and apps over WebSocket and other transports, an alternative to Pusher and Ably.
- GitHub stars
- 11k
- Last commit
- 2 days ago
- Latest release
- v6.9.7
- Licence
- Apache-2.0
- Self-hosted
- Yes

This entry covers Centrifugo, the real-time messaging server from the Centrifugal project. It is an open-source PUB/SUB server for user-facing messaging: your backend publishes into channels through a simple HTTP or gRPC API, and clients subscribe to those channels using official SDKs, or a unidirectional approach that needs no SDK.
Messages reach online users over WebSocket, HTTP streaming, Server-Sent Events, gRPC and WebTransport. Because it is language-agnostic, it can sit beside any backend and separates the business logic from the real-time transport. It is used for chat apps, live comments, multiplayer games, data visualizations, collaborative tools and streaming AI responses. An embedded admin UI shows live connections and lets you publish test messages, and Redis support allows scaling out.
Centrifugo is written in Go and licensed under Apache-2.0. It is pitched as a self-run replacement for hosted services like Pusher, Ably and PubNub and for libraries such as socket.io, Phoenix.PubSub and SignalR, and a Docker command starts it in a minute for local trials. The README warns that the insecure flags used in the quick start must never be used in production.
Key features
- Channel-based PUB/SUB messaging
- WebSocket, SSE, HTTP streaming and gRPC transports
- WebTransport support for browsers
- HTTP and gRPC publish API
- Official client SDKs
- Embedded admin UI
- Scaling out with Redis
Pricing: Free and open source under the Apache-2.0 licence.

