Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. Centrifugo

Centrifugo

Apache-2.0Gov6.10.1Self-Hosted

A scalable, language-agnostic real-time messaging server for building chat apps, live features, and collaborative tools.

Visit WebsiteGitHubGitHub
10.9k stars744 forks0 contributors

What is Centrifugo?

Centrifugo is an open-source scalable real-time messaging server that enables instant message delivery to online users over various transports like WebSocket and Server-Sent Events. It functions as a user-facing PUB/SUB server with channel subscriptions, allowing developers to add real-time features such as chat, live comments, and data visualizations to their applications. The server decouples business logic from the real-time transport layer, making it suitable for modern architectures.

Target Audience

Backend and full-stack developers building applications that require real-time communication, such as chat apps, collaborative tools, live dashboards, or multiplayer games. It is ideal for teams needing a scalable, self-hosted alternative to commercial real-time messaging services.

Value Proposition

Developers choose Centrifugo for its production-ready scalability, language-agnostic design, and comprehensive feature set including built-in history, presence, and multiple transport protocols. It offers a self-hosted, cost-effective solution with greater control and flexibility compared to proprietary alternatives.

Overview

Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably, socket.io, Phoenix.PubSub, SignalR. Set up once and forever.

Use Cases

Best For

  • Building scalable chat applications or messengers
  • Adding live comment sections to blogs or social platforms
  • Creating real-time data visualizations and dashboards
  • Developing collaborative tools with instant updates
  • Implementing multiplayer game backends with WebSocket support
  • Decoupling real-time features from monolithic backend architectures

Not Ideal For

  • Projects needing only simple WebSocket echo or basic real-time without full PUB/SUB semantics
  • Teams preferring fully-managed cloud services like Pusher to avoid self-hosted infrastructure overhead
  • Use cases deeply integrated with specific cloud platforms where native messaging services (e.g., AWS IoT Core) offer tighter integration

Pros & Cons

Pros

Multi-Transport Flexibility

Supports WebSocket, HTTP-streaming, SSE, GRPC, and WebTransport, allowing clients to choose the best protocol for their environment, as emphasized in the README.

Built-in Scalability

Horizontally scales using Redis or Nats, enabling high concurrency without custom sharding, which is a key feature highlighted for production use.

Comprehensive Feature Set

Includes channel history, presence, RPC calls, and delta compression, providing a production-ready solution for real-time needs out of the box.

Language-Agnostic Design

Works with any backend via HTTP/GRPC APIs, avoiding lock-in to specific programming languages, as noted in the philosophy.

Cons

Self-Hosting Complexity

Requires managing and scaling the Centrifugo server along with dependencies like Redis, adding operational overhead compared to cloud services.

Steep Learning Curve

The strict protocol, channel namespaces, and configuration options can be complex for developers new to real-time systems, despite thorough documentation.

Dependency on External Storage

Scalability relies on Redis or Nats, introducing additional infrastructure to maintain, potential latency, and cost concerns.

Open Source Alternative To

Centrifugo is an open-source alternative to the following products:

socket.io
socket.io

Socket.IO is a JavaScript library for real-time web applications that enables bidirectional communication between web clients and servers.

Pusher
Pusher

Pusher is a platform that provides real-time APIs and tools for building interactive features like live chat, notifications, and data synchronization.

Ably
Ably

A real-time data delivery platform that provides APIs for pub/sub messaging, data streaming, and synchronization across web and mobile apps.

S
SignalR

SignalR is a .NET library for adding real-time web functionality to applications, enabling server-side code to push content to clients instantly.

Pubnub
Pubnub

PubNub is a real-time communication platform that provides APIs for building chat, live updates, and IoT applications with low-latency data streaming.

P
Phoenix.PubSub

Frequently Asked Questions

Quick Stats

Stars10,900
Forks744
Contributors0
Open Issues20
Last commit1 day ago
CreatedSince 2015

Tags

#websocket-server#live-updates#redis#websocket#messaging#server-sent-events#grpc#pubsub#chat-application#streaming#pub-sub#scalability#go-language#http-streaming#real-time-messaging#real-time#self-hosted

Built With

N
NATS
G
Go
P
PostgreSQL
K
Kafka
D
Docker
R
Redis

Links & Resources

Website

Included in

Go169.1kIntegration523
Auto-fetched 1 day ago

Related Projects

Apache Kafka StreamsApache Kafka Streams

Apache Kafka - A distributed event streaming platform

Stars34,104
Forks15,623
Last commit1 day ago
nsqnsq

A realtime distributed messaging platform

Stars25,771
Forks2,883
Last commit2 months ago
Apache RocketMQApache RocketMQ

Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.

Stars22,641
Forks12,038
Last commit3 days ago
NATS (k)NATS (k)

High-Performance server for NATS.io, the cloud and edge native messaging system.

Stars20,912
Forks2,014
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub