Centrifugo

Centrifugo

Scalable open-source real-time messaging server for pub/sub

9.7kstars
674forks
Last commit: 16d ago
Repo age: 11y old
Centrifugo screenshot

Centrifugo is an open-source, Go-written real-time messaging server that provides a language-agnostic pub/sub layer for delivering live updates and streaming events to web and mobile clients. It exposes HTTP and gRPC server APIs and ships official client SDKs and multiple real-time transports to integrate with existing backends and frontends. (centrifugal.dev)

Key Features

  • Multi-transport support: bidirectional WebSocket-based SDKs and unidirectional transports (WebSocket, HTTP-streaming, Server-Sent Events, gRPC) for different client constraints. (centrifugal.dev)
  • High-throughput, scalable pub/sub: optimized binary (Protobuf) and JSON protocols, built-in horizontal scaling via brokers (Redis, Redis Cluster and NATS) and idempotent publish options. (centrifugal.dev)
  • Server APIs for backend integration: HTTP API and gRPC API for publishing, presence, history, disconnects and cluster introspection. (centrifugal.dev)
  • Observability and operational tooling: Prometheus metrics, recommended Grafana dashboards and an admin web UI for runtime inspection and control. (centrifugal.dev)
  • Official SDKs and examples: client libraries and tutorials for web and mobile environments plus deployment recipes (binaries, Docker images, Helm charts). (centrifugal.dev)

Use Cases

  • Real-time chat and collaboration: scalable messaging for chat rooms, presence, and live collaboration features.
  • Live dashboards and telemetry: streaming time-series or telemetry data to many clients (metrics, game telemetry, monitoring panels).
  • Notifications and streaming AI responses: push short events or stream incremental model outputs to connected clients.

Limitations and Considerations

  • Unidirectional transports (e.g., plain SSE or HTTP-streaming) support only JSON and lack advanced SDK features such as dynamic subscriptions, automatic recovery and RPC over persistent connections; for full feature set, use bidirectional SDKs. (centrifugal.dev)
  • Some higher-level capabilities (push-notifications API, ClickHouse analytics, advanced tracing and SSO in the web UI) are provided by Centrifugo PRO (commercial add-on), not the OSS distribution. (centrifugal.dev)

Centrifugo is a mature, production-proven component for adding real-time delivery to existing stacks without rewriting application servers. It is optimized for broadcasting to large audiences, supports both JSON and binary protocols, and integrates with common brokers and observability stacks for scalable deployments.

Categories:

Tags:

Tech Stack:

Share:

Similar Services

Vector

Vector

High-performance observability data pipeline written in Rust

21.1k
2k
Last commit: 22h ago

Open-source observability pipeline to collect, transform, and route logs and metrics with a single, high-performance binary and programmable transforms.

Alternative to:
Elastic Logstash
Elastic Logstash
+13
EMQX

EMQX

Scalable MQTT broker and real-time messaging platform for IoT

15.8k
2.4k
Last commit: 2d ago

EMQX is a high-performance MQTT broker and IoT messaging platform with clustering, security controls, a SQL rules engine, and integrations to databases and event systems.

Alternative to:
EMQX Cloud
EMQX Cloud
+3
Apprise

Apprise

Unified notifications library for 120+ services via a single API.

15.5k
554
Last commit: 4d ago

A Python-based notification library and CLI that routes messages to 120+ services via URL-based configurations, enabling self-hosted cross-platform alerts.

Alternative to:
Twilio
Twilio
+4
Eclipse Mosquitto

Eclipse Mosquitto

Lightweight MQTT message broker

10.5k
2.6k
Last commit: 2d ago

Eclipse Mosquitto is a lightweight, open-source MQTT broker supporting MQTT 5.0 and 3.1.1, plus client libraries and CLI tools for pub/sub messaging.

Alternative to:
EMQX Cloud
EMQX Cloud
+11
ejabberd

ejabberd

Scalable real-time messaging server for XMPP, MQTT, and SIP

6.5k
1.5k
Last commit: 1d ago

ejabberd is an Erlang/OTP-based messaging server providing XMPP chat and presence, MQTT broker capabilities for IoT, and SIP services for real-time communications.

Alternative to:
CloudMQTT
CloudMQTT
+11
VerneMQ

VerneMQ

Distributed MQTT message broker built on Erlang/OTP

3.5k
420
Last commit: 9d ago

VerneMQ is a high-performance, distributed MQTT broker for scalable, highly available IoT and M2M messaging, with clustering, TLS, WebSockets, plugins, and integrations.

Alternative to:
HiveMQ Cloud
HiveMQ Cloud
+3