Skip to content
Language-agnostic real-time messaging server (Websocket and SockJS)
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Corrected reference to riak documentation (#272) Mar 18, 2019
internal remove uid field from API proto schema Mar 18, 2019
misc
vendor update centrifuge to latest, adapt to API changes (#271) Mar 17, 2019
.gitattributes
.gitignore
.goreleaser.yml update homebrew release configuration Oct 1, 2018
.travis.yml
CHANGELOG.md prepare changelog for v2.2.0 Mar 18, 2019
Dockerfile
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
Procfile centrifugo v2 Sep 16, 2018
README.md update centrifuge lib and readme Jan 6, 2019
app.json
config.json centrifugo v2 Sep 16, 2018
main.go

README.md

Join the chat at https://gitter.im/centrifugal/centrifugo Join the chat at https://t.me/joinchat/ABFVWBE0AhkyyhREoaboXQ

Centrifugo is a real-time messaging server. It's language-agnostic and can be used in conjunction with application backend written in any programming language. Centrifugo runs as separate service and keeps persistent Websocket or SockJS connections from your application clients (from web browsers or other environments like iOS/Android apps). When you need to deliver event to your clients in real-time you publish it to Centrifugo API and Centrifugo then broadcasts event to all connected clients interested in this event (i.e. clients subscribed on event channel). In other words – this is a user-facing PUB/SUB server.

See server documentation.

You can also find this introduction post interesting – this is a story and motivation of Centrifugo.

scheme

How to install

Releases available as single executable files – just download latest release for your platform, unpack and run.

If you are on MacOS:

brew tap centrifugal/centrifugo
brew install centrifugo

See official Docker image.

There are also packages for 64-bit Debian, Centos and Ubuntu.

Demo

Try our demo instance on Heroku (admin password is password, secret is secret, API key is api_key). Or deploy your own Centrifugo instance in one click:

Deploy

Highlights

  • Fast server capable to serve thousands of simultaneous connections
  • Simple to install and cross platform – works on Linux, MacOS and Windows
  • Easily integrates with existing application – no need to rewrite your code base to introduce real-time events
  • HTTP and GRPC API to communicate from your application backend (publish messages in channels etc)
  • JSON and binary Protobuf Websocket protocol
  • SockJS polyfill for web browsers without Websocket support (JSON only)
  • Scale with Redis PUB/SUB, Redis Sentinel for high availability, consistent sharding support
  • JWT-based user authentication and private channel authorization
  • Presence information for channels (show all active clients in channel)
  • History information for channels (last messages published into channel)
  • Join/leave events for channels (client goes online/offline)
  • Automatically recover missed messages after network disconnect over configured window
  • Built-in administrative web interface
  • Ready to deploy (Docker, RPM/DEB packages, Nginx configuration, automatic Let's Encrypt TLS certificates, Prometheus/Graphite monitoring)
  • MIT license

Support project

If you use Centrifugo and like it consider supporting project development buying its author a coffee:

Buy Me A Coffee

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.