For an easy pub-sub messaging system, the first results are centrifugal/centrifugo (Centrifugo is a self-hosted real-time messaging server distributed as a single binary with a built-in admin UI, supporting WebSocket and HTTP APIs, and is lightweight and Docker-friendly, making it an ideal fit for a simple, low-overhead pub-sub system), binwiederhier/ntfy (ntfy is a self-hosted topic-based pub-sub server that uses simple HTTP requests for publish and subscribe, making it lightweight and deployable as a single Go binary, but it lacks a built-in admin UI and explicit WebSocket support which are noted requirements) and apache/kafka (Kafka is a pub-sub messaging system, but it is a heavyweight distributed platform designed for high throughput and fault tolerance, not a lightweight, easy-to-deploy system minimizing operational overhead). nats-io/nats-server and dunglas/mercure round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Lightweight message brokers and pub-sub platforms designed for easy deployment and minimal operational overhead.
Centrifugo is a self-hosted real-time messaging server that provides infrastructure for scalable notifications, a publish-subscribe message broker, and a language-agnostic WebSocket gateway. It allows for the delivery of instant messages and data streams to concurrent users via WebSockets and Server-Sent Events. The system functions as a communication layer that separates network transport from backend business logic. It supports distributed messaging clusters using Redis for coordination of presence and message delivery across multiple server nodes. The project covers channel subscription m
Centrifugo is a self-hosted real-time messaging server distributed as a single binary with a built-in admin UI, supporting WebSocket and HTTP APIs, and is lightweight and Docker-friendly, making it an ideal fit for a simple, low-overhead pub-sub system.
ntfy is a self-hosted messaging infrastructure that provides a lightweight platform for sending and receiving real-time notifications. It functions as a topic-based pub-sub server, allowing users to publish and subscribe to message channels using standard HTTP requests. By bridging server-side events with native mobile and desktop clients, it enables the delivery of alerts across various environments through a unified communication layer. The project distinguishes itself by offering a complete, private notification ecosystem that includes persistent message caching and robust access control.
ntfy is a self-hosted topic-based pub-sub server that uses simple HTTP requests for publish and subscribe, making it lightweight and deployable as a single Go binary, but it lacks a built-in admin UI and explicit WebSocket support which are noted requirements.
Kafka is a distributed event streaming platform designed for capturing, storing, and processing real-time data streams across interconnected nodes. It functions as a distributed commit log, providing a fault-tolerant storage mechanism that records state changes sequentially to ensure data consistency and durability across distributed environments. The platform distinguishes itself through a partitioned commit log architecture that enables horizontal scaling and parallel processing of data streams. It integrates a stream processing engine for continuous transformations and aggregations, while
Kafka is a pub-sub messaging system, but it is a heavyweight distributed platform designed for high throughput and fault tolerance, not a lightweight, easy-to-deploy system minimizing operational overhead.
NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t
NATS Server is a high-performance publish-subscribe messaging system that deploys as a single binary and supports WebSocket, HTTP APIs, and Docker, making it a lightweight, easy-to-operate broker — though it lacks a graphical built-in admin UI out of the box, which is the one listed feature not fully covered.
Mercure is an HTTP-based message broker and real-time pub/sub server that routes asynchronous data updates to authorized subscribers. It functions as a centralized hub that receives data via standard HTTP requests and broadcasts it to web clients using the Server-Sent Events protocol. The project distinguishes itself by replacing WebSockets with a unidirectional HTTP connection, leveraging HTTP/2 and HTTP/3 for multiplexed, low-latency delivery. It implements a secure access control layer using JSON Web Tokens and JSON Web Signatures to validate the identity of publishers and subscribers, and
Mercure is an HTTP-based pub/sub server built as a single Go binary that provides real-time messaging via Server-Sent Events and an HTTP API, making it a lightweight, easy-to-deploy choice for this search, though it uses SSE instead of WebSockets.
Emitter is a distributed pub-sub platform and message brokering system that decouples senders and receivers through topic-based routing. It functions as an MQTT message broker and WebSocket communication server, enabling real-time data exchange between hardware devices and web-based clients. The system acts as a secure channel orchestrator and message persistence engine. It ensures delivery through a storage system that buffers historical messages and queues data for offline subscribers. Access to these data streams is managed via time-limited permission keys that enforce granular read and wr
Emitter is a Go-based pub-sub platform that runs as a single binary and supports MQTT with WebSocket, making it a solid fit for a simple deployable messaging system, though its emphasis on distributed clustering might add some operational complexity beyond minimal.
NATS Streaming System Server
NATS Streaming Server is a lightweight, single-binary publish-subscribe messaging system that supports WebSocket and Docker, so it fits the core need for a simple-to-operate message broker, though its built-in admin UI is minimal or absent.
Trailbase is a backend-as-a-service platform delivered as a single executable that integrates a realtime database engine, an identity and access manager, and a type-safe API generator. It provides a comprehensive backend environment including a SQLite-backed storage engine and a WebAssembly runtime server for executing custom logic. The platform distinguishes itself by automatically transforming database schemas into JSON APIs with cross-language client bindings and by allowing the execution of portable components for server-side rendering and custom HTTP routes. It further incorporates vecto
Trailbase is a full backend-as-a-service platform with realtime database and API generation, not a dedicated lightweight publish-subscribe messaging system; while it includes some realtime features, its scope and complexity are far broader than the simple, minimal pub-sub tool you are after.
deployd is a realtime API framework and MongoDB backend as a service that allows for the creation of networked interfaces synchronizing data and events between clients and servers. It functions as a JavaScript API middleware that can be integrated with HTTP servers to provide authentication, request interceptors, and realtime capabilities. The project features a self-hosted API management dashboard for configuring resource settings, managing data collections, and monitoring server status through a web-based interface. It includes a realtime data synchronization engine that pushes live databas
Deployd is a realtime API framework and backend-as-a-service built on MongoDB, not a lightweight, self-contained publish-subscribe messaging system—it requires a database server and lacks the single-binary deployment and minimal operational overhead you need.
Libredesk is an omnichannel support management system designed to unify live chat and email communications into a single dashboard. It provides a comprehensive environment for managing customer interactions, agent roles, and team assignments to organize support workloads. The project distinguishes itself through AI customer support automation, which includes generating automated responses and refining message tones. It also supports the development and integration of custom chat widgets using WebSockets and JavaScript APIs. The system covers a broad set of capabilities, including customer re
Libredesk is a full-featured customer support and ticketing system built around live chat and email, not a general-purpose publish-subscribe messaging broker; while it uses WebSockets and has a UI, its purpose is helpdesk management rather than lightweight pub-sub message routing.
uWebSockets is a high-performance networking engine providing an HTTP web server and a WebSocket server framework. It implements a multi-threaded event loop architecture to deploy isolated application instances across multiple CPU cores and includes an SSL/TLS network layer for secure, encrypted communication. The project features a dedicated WebSocket pub/sub engine for distributing messages to specific groups of connected clients. It optimizes network throughput through syscall corking to reduce kernel overhead and employs payload compression to minimize data transfer sizes. The system cov
uWebSockets is a high-performance C++ networking library with a WebSocket pub/sub engine, but it's a building block for building services rather than a ready-to-deploy, lightweight messaging system with a single binary and admin UI.
Rocket.Chat is a self-hosted communication platform designed for organizations to maintain full control over their messaging infrastructure and data. It functions as a scalable collaboration suite that supports growing teams by managing consistent configuration cycles across diverse deployment environments. The platform distinguishes itself through a modular architecture that allows for deep customization of enterprise collaboration workflows. It features a sandboxed application engine that enables developers to build and integrate custom tools and plugins within an isolated environment, ensu
Rocket.Chat is a full-featured team chat platform with real-time messaging, not a lightweight publish-subscribe broker; it requires a database and more resources than the minimal, single-binary system you are looking for.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| centrifugal/centrifugo | 10.4K | Go | Apache-2.0 | |
| binwiederhier/ntfy | 30.8K | Go | Apache-2.0 | |
| apache/kafka | 32.8K | Java | Apache-2.0 | |
| nats-io/nats-server | 20.1K | Go | Apache-2.0 | |
| dunglas/mercure | 5.3K | Go | AGPL-3.0 | |
| emitter-io/emitter | 4K | Go | AGPL-3.0 | |
| nats-io/nats-streaming-server | 2.5K | Go | Apache-2.0 | |
| trailbaseio/trailbase | 5.3K | Rust | OSL-3.0 | |
| deployd/deployd | 4.9K | JavaScript | — | |
| abhinavxd/libredesk | 2.6K | Go | AGPL-3.0 |