Centrifugo alternatives and similar packages
Based on the "Messaging" category.
Alternatively, view Centrifugo alternatives based on common mentions on social networks and blogs.
-
machinery
An asynchronous task queue/job queue based on distributed message passing. -
NATS Go Client
A lightweight and high performance publish-subscribe and distributed queueing messaging system -
NATS
A lightweight and highly performant publish-subscribe and distributed queueing messaging system. -
Confluent Kafka Golang Client
confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform. -
Mercure
Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). -
Uniqush-Push
A redis backed unified push service for server-side notifications to mobile devices. -
zmq4
A Go interface to ZeroMQ version 4. Also available for version 3 and version 2. -
Asynq
A simple, reliable, and efficient distributed task queue for Go built on top of Redis. -
Gollum
A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations. -
mangos
Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. -
emitter
Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. -
PingMe
PingMe is a CLI tool which provides the ability to send messages or alerts to multiple messaging platforms & email. -
messagebus
messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. -
guble
A messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence. -
drone-line
Sending Line notifications using a binary, docker or Drone CI. -
RapidMQ
RapidMQ is a lightweight and reliable library for managing of the local messages queue -
redisqueue
redisqueue provides a producer and consumer of a queue that uses Redis streams. -
go-notify
Native implementation of the freedesktop notification spec. -
go-res
Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate. -
Commander
A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. -
structured pubsub
Publish and subscribe functionality within a single process in Go. -
hare
A user friendly library for sending messages and listening to TCP sockets. -
jazz
A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. -
rmqconn
RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed.
Scout APM - Leading-edge performance monitoring starting at $39/month
Do you think we are missing an alternative of Centrifugo or a related project?
README
Centrifugo is a scalable real-time messaging server in language-agnostic way. Centrifugo works in conjunction with application backend written in any programming language. It runs as separate service and keeps persistent Websocket or SockJS connections from application clients (from web browsers or other environments like iOS/Android apps). When you need to deliver an 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.
For more information follow to Centrifugo documentation site.
You can also find the following posts interesting:
- Four years in Centrifuge – this is a story and motivation of Centrifugo
- Building real-time messaging server in Go – this is a write-up about some Centrifugo internals and decisions
How to install
See installation instructions in Centrifugo documentation.
Demo
Try our demo instance on Heroku (admin password is password
, token_hmac_secret_key is secret
, API key is api_key
). Or deploy your own Centrifugo instance in one click:
Highlights
- Centrifugo is fast and capable to scale to millions of simultaneous connections
- Simple integration with any application – works as separate service
- Simple server API (HTTP or GRPC)
- Client-side libraries for popular frontend environments
- JSON and binary Protobuf Websocket client protocol based on strict schema
- SockJS polyfill for web browsers without Websocket support
- User authentication with JWT or over connection request proxy to configured HTTP endpoint
- Proper connection management and expiration control
- Various types of channels: private, user-limited
- Various types of subscriptions: client-side or server-side
- Transform RPC calls over WebSocket/SockJS to configured HTTP endpoint call
- 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)
- Automatic recovery of missed messages between client reconnects over configured retention period
- Built-in administrative web panel
- Cross platform – works on Linux, MacOS and Windows
- Ready to deploy (Docker, RPM/DEB packages, automatic Let's Encrypt TLS certificates, Prometheus/Graphite monitoring)
- MIT license
*Note that all licence references and agreements mentioned in the Centrifugo README section above
are relevant to that project's source code only.