An open-source messaging platform built in Rust. Zero external dependencies.
Danube is a lightweight, cloud-native messaging broker with embedded Raft consensus for metadata replication. One binary, three deployment modes: standalone for development, cluster for production, and edge for MQTT-to-cloud IoT ingestion.
🖥️ Standalone : single broker, zero config. Download the binary and run danube-broker --mode standalone --data-dir ./data
🌐 Cluster : multi-broker with Raft consensus, automated topic rebalancing, and horizontal scaling. Deploy with Docker Compose or Kubernetes
🏭 Edge : MQTT gateway that ingests IoT device data, validates payloads against schemas, buffers in a local WAL, and replicates to the cluster. Designed for factory floors and remote sites where devices speak MQTT and need resilient delivery to a central platform
- Two-speed dispatch : non-reliable (sub-millisecond, zero persistence) or reliable (at-least-once with WAL + cloud storage)
- Schema registry : JSON Schema, Avro with versioning and compatibility enforcement
- AI-native admin : manage your cluster via natural language through MCP (Claude, Cursor, etc)
- Cluster resilience : automatic leader election, failover, and topic reconciliation on restart. Scale horizontally by adding brokers with zero downtime
- Self-optimizing clusters : intelligent load management that monitors broker health and automatically rebalances topics to prevent hotspots. New topics land on the least-loaded broker
- Connector SDK : plug-and-play integrations with databases, Kafka, ClickHouse, and more via Danube Connect
- danube : messaging broker (standalone, cluster, and edge modes)
- danube-connect-core : core SDK for building connectors
- danube-connectors : available connectors
Contributions for other languages are welcome!
Documentation · Getting Started · Architecture · Schema Registry
⭐ Star the repo · 🐛 Report issues · 💡 Contribute (PRs welcome across all repos)