Danube is an open-source distributed Pub/Sub messaging platform (inspired by Apache Pulsar).
Check-out the Docs for more details of the Danube Architecture and the supported concepts.
Currently, the Danube system exclusively supports Non-persistent messaging. This means messages reside solely in memory and are promptly distributed to consumers if they are available, utilizing a dispatch mechanism based on subscription types.
Allows single or multiple Producers to publish on the Topic and multiple Subscriptions to consume the messages from the Topic.
You can combine the Subscription Type mechanisms in order to obtain message queueing or fan-out pub-sub messaging systems.
Currently, the Danube client libraries are written in:
- Rust Client - the Rust examples on how to create and use the Producers / Consumers
- Go Client - the Go examples on how to create and use the Producers / Consumers
Contributions in other languages, such as Python, Java, etc., are also greatly appreciated. If there are any I'll add in this section.
I'm continuously working on enhancing and adding new features. Contributions are welcome, and you can also report any issues you encounter.
The crates part of the Danube workspace:
- danube-broker - The main crate, danube pubsub platform
- danube-admin - Admin CLI designed for interacting with and managing the Danube cluster
- danube-client - An async Rust client library for interacting with Danube Pub/Sub messaging platform
- danube-pubsub - CLI to handle message publishing and consumption,
Follow the instructions on how to setup the development environment.