Centrifugo

Language-agnostic scalable real-time messaging server.

Language: GoCategory: Real-timeFirst released: 2015Created by: Alexander EmelinLicense: Apache-2.0

Centrifugo is an open-source, self-hosted real-time messaging server that provides a language-agnostic scalable WebSocket transport layer. It uses Redis or NATS for horizontal scalability across multiple server nodes, handling millions of simultaneous connections. Centrifugo supports WebSocket, SockJS, HTTP-streaming, and SSE transports with automatic protocol negotiation for broad client compatibility. Features include channel subscriptions with configurable permissions, per-channel online presence tracking, message history with configurable retention, and server-side subscriptions for pushing data without explicit client registration. The built-in admin web UI provides real-time monitoring of connections, channels, and server health. Centrifugo integrates via gRPC and HTTP APIs, working with any backend language including Go, PHP, Python, Java, and Node.js.

Links

Key Features

WebSocket and SockJS transportChannel subscriptionsOnline presenceMessage historyServer-side subscriptionsBuilt-in admin UIHorizontal scalability