Centrifugo

Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
Alternatives To Centrifugo
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Centrifugo7,366
4 days ago73June 30, 202212apache-2.0Go
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
Kombu2,6097,8032262 days ago180June 15, 2023190bsd-3-clausePython
Messaging library for Python.
Foundatio1,7763861a day ago460June 23, 202328apache-2.0C#
Pluggable foundation blocks for building distributed apps.
Onetimesecret1,727
5 months ago96mitRuby
Keep passwords and other sensitive information out of your inboxes and chat logs.
Centrifuge85383016 days ago101June 30, 20226mitGo
Real-time messaging library for Go. The simplest way to add feature-rich and scalable WebSocket support to your application. The core of Centrifugo server.
Booking Microservices605
8 days ago4mitC#
A practical microservices, built with .Net 8, DDD, CQRS, Event Sourcing, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
Propan429
6 days ago21mitPython
Propan is a powerful and easy-to-use Python framework for building event-driven applications that interact with any MQ Broker
Slimmessagebus3881624 days ago35November 13, 202217apache-2.0C#
Lightweight message bus interface for .NET (pub/sub and request-response) with transport plugins for popular message brokers.
Sockethub35973 months ago2September 23, 202247lgpl-3.0TypeScript
A multi-protocol gateway for the Web using ActivityStream messages.
Go Random Chat270
a day ago24March 09, 20221mitGo
Modern real-time chat in scalable architecture, written in go.
Alternatives To Centrifugo
Select To Compare


Alternative Project Comparisons
Readme

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of channel subscriptions – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

Documentation

Join community

Why Centrifugo

The core idea of Centrifugo is simple – it's a PUB/SUB server on top of modern real-time transports:

The hard part is to make this concept production-ready, efficient, flexible and available from different application environments. Centrifugo is a mature solution that already helped many projects with adding real-time features and scale towards many concurrent connections. Centrifugo provides a set of features not available in other open-source solutions in the area:

  • Real-time transports: WebSocket, HTTP-streaming, Server-Sent Events (SSE), GRPC, SockJS, WebTransport
  • Built-in scalability to many machines with Redis, KeyDB, Nats, Tarantool
  • Simple HTTP and GRPC server API to communicate with Centrifugo from the app backend
  • Flexible connection authentication mechanisms: JWT and proxy-like
  • Channel subscription multiplexing over a single connection
  • Different types of subscriptions: client-side and server-side
  • Various channel permission strategies, channel namespace concept
  • Hot message history in channels, with automatic message recovery upon reconnect
  • Online channel presence information, with join/leave notifications
  • A way to send RPC calls to the backend over the real-time connection
  • Strict and effective client protocol wrapped by several official SDKs
  • JSON and binary Protobuf message transfer, with optimized serialization
  • Beautiful embedded admin web UI
  • And much more, visit Centrifugo documentation site

Backing

This repository is hosted by packagecloud.io.

Private NPM registry and Maven, RPM, DEB, PyPi and RubyGem Repository · packagecloud

Also thanks to JetBrains for supporting OSS (most of the code here written in Goland):

JetBrains logo

Popular Messaging Projects
Popular Redis Projects
Popular Messaging Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Redis
Websocket
Real Time
Streaming
Messaging
Grpc
Pubsub
Sockjs
Eventsource