Repolode
centrifugal

centrifugal/centrifugo

Self-hosted, language-agnostic real-time PUB/SUB messaging server that pushes messages to users over WebSocket, SSE, HTTP-streaming, GRPC and WebTransport.

Open-source alternative to:PusherAblyPubNub

Stars
10,954
Forks
754
Open issues
25
Last commit
6 hours ago

What is it?

Centrifugo is an open-source real-time messaging server that delivers messages instantly to users connected over WebSocket, HTTP-streaming, Server-Sent Events, GRPC and WebTransport. It works as a user-facing PUB/SUB server: clients subscribe to channels, and the application backend publishes into them through a simple HTTP or GRPC API.

Because Centrifugo is independent of the backend language, it separates real-time delivery from business logic. Official client SDKs cover JavaScript, Dart/Flutter, Swift, Java, Python, Go and .NET, and simple cases can use any standard client for the chosen transport without an SDK.

Scaling is handled through Redis (including Redis Cluster and compatible storage), PostgreSQL or NATS. The project also offers channel history with message recovery on reconnect, presence with join/leave events, JWT or proxy-based authentication, delta compression, Prometheus metrics, and an embedded admin web UI.

Key features

  • 01Delivers messages over WebSocket, SSE, HTTP-streaming, GRPC and WebTransport (experimental).
  • 02Scales with Redis, Redis Cluster, PostgreSQL or NATS as the broker.
  • 03Publishes to channels through a simple HTTP or GRPC server API.
  • 04Supports channel history with automatic recovery after reconnect.
  • 05Provides online presence and join/leave notifications per channel.
  • 06Offers JWT and proxy-based connection authentication.
  • 07Exposes Prometheus metrics and includes an embedded admin web UI.

Use cases

  • Building chat or messenger features in a web or mobile app.
  • Pushing live comments, notifications or data updates to browsers.
  • Streaming AI model responses to users in real time.
  • Powering multiplayer games or collaborative tools that need low-latency sync.

Quick start

  1. 1

    Run Centrifugo with the embedded admin UI using Docker

    docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure
  2. 2

    Open http://localhost:8000 to reach the admin UI

  3. 3

    Follow the installation instructions for native binaries, Homebrew, packages and production configuration

Things to know

  • The quick start uses insecure flags that remove authentication, which must not be used in production.
  • WebTransport support is experimental.

In collections

Topics

FAQ

What is centrifugo?
Self-hosted, language-agnostic real-time PUB/SUB messaging server that pushes messages to users over WebSocket, SSE, HTTP-streaming, GRPC and WebTransport. Centrifugo is an open-source real-time messaging server that delivers messages instantly to users connected over WebSocket, HTTP-streaming, Server-Sent Events, GRPC and WebTransport. It works as a user-facing PUB/SUB server: clients subscribe to channels, and the application backend publishes into them through a simple HTTP or GRPC API.
Is centrifugo free to use? What license does it have?
centrifugo is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is centrifugo still maintained?
Actively maintained. The last commit to centrifugo was on Nov 7, 2026.
What can I use centrifugo for?
Building chat or messenger features in a web or mobile app. Pushing live comments, notifications or data updates to browsers. Streaming AI model responses to users in real time. Powering multiplayer games or collaborative tools that need low-latency sync.
How do I install centrifugo?
Run Centrifugo with the embedded admin UI using Docker: docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure Open http://localhost:8000 to reach the admin UI Follow the installation instructions for native binaries, Homebrew, packages and production configuration
Where can I get centrifugo?
The source code and installation instructions are on GitHub: https://github.com/centrifugal/centrifugo

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects