centrifugo

command module
v0.0.0-...-f912f6f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2016 License: MIT Imports: 24 Imported by: 0

README

Centrifugo is a real-time messaging server. It's language-agnostic and can be used in conjunction with application backend written in any language - Python, Ruby, Perl, PHP, Javascript, Java, Objective-C etc.

Centrifugo runs as separate service and keeps persistent Websocket or SockJS connections from your application clients (from web browsers or other environments like iOS or Android apps). When some event happens you can broadcast it to all interested clients using Centrifugo API.

Read documentation to get details. You can also find this introduction post interesting – this is a story behind Centrifugo.

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

See official Docker image.

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

Try demo instance on Heroku (password demo). Or deploy your own Centrifugo instance in one click:

Deploy

Highlights:

  • Fast server capable to serve thousands of simultaneous connections
  • Easily integrates with existing application – no need to rewrite your backend code to dive into real-time
  • HTTP API to communicate from your application backend (publish messages in channels etc.). API clients for Python, Ruby, PHP, Go, NodeJS. Simple to implement new one
  • Javascript client to connect from web browser over SockJS or pure Websocket protocol
  • Scale to several machines with Redis
  • SHA-256 HMAC-based connection authentication and private channel authorization
  • Different types of channels – private, user limited, client limited channels
  • Flexible configuration of channels via namespaces
  • Presence information for channels (show all clients in channel)
  • History information for channels (last messages sent into channels)
  • Join/leave events for channels (client goes online/offline)
  • Recover missed messages after network disconnect
  • Built-in administrative web interface
  • Possibility to use as WebRTC signaling server
  • Ready to deploy (docker image, RPM/DEB packages, Nginx configuration)
  • MIT license

Simplified scheme:

scheme

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
extras
Package libcentrifugo is a real-time core for Centrifugo server.
Package libcentrifugo is a real-time core for Centrifugo server.
auth
Package auth provides functions to generate and check Centrifugo tokens and signs.
Package auth provides functions to generate and check Centrifugo tokens and signs.
bytequeue
Package bytequeue provides []byte queue for libcentrifugo package client messages.
Package bytequeue provides []byte queue for libcentrifugo package client messages.
hdrhistogram
package hdrhistogram is a small library that wraps github.com/codahale/hdrhistogram.WindowedHistogram to make WindowedHistogram synchronized and provides registry structure to simplify using multiple histograms.
package hdrhistogram is a small library that wraps github.com/codahale/hdrhistogram.WindowedHistogram to make WindowedHistogram synchronized and provides registry structure to simplify using multiple histograms.
priority
Package priority provides priority queue for libcentrifugo package Memory Engine.
Package priority provides priority queue for libcentrifugo package Memory Engine.
raw
package raw contains Raw type (alias to slice of bytes).
package raw contains Raw type (alias to slice of bytes).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL