Skip to main content

kojin_amqp/
lib.rs

1//! RabbitMQ (AMQP) broker for the kojin task queue.
2//!
3//! This crate provides [`AmqpBroker`], a [`Broker`](kojin_core::Broker)
4//! implementation backed by RabbitMQ using the AMQP 0.9.1 protocol.
5//!
6//! # Topology
7//!
8//! - `kojin.direct` exchange → `kojin.queue.{name}` (routing key = queue name)
9//! - `kojin.dlx` exchange → `kojin.dlq.{name}` (dead-letter)
10//! - `kojin.delayed` exchange for scheduled tasks (requires the
11//!   `rabbitmq-delayed-message-exchange` plugin)
12//!
13//! # Example
14//!
15//! ```rust,no_run
16//! use kojin_amqp::{AmqpBroker, AmqpConfig};
17//!
18//! # #[tokio::main]
19//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
20//! let config = AmqpConfig::new("amqp://guest:guest@localhost:5672/%2f");
21//! let queues = vec!["default".into(), "emails".into()];
22//! let broker = AmqpBroker::new(config, &queues).await?;
23//! # Ok(())
24//! # }
25//! ```
26
27mod broker;
28pub mod config;
29pub mod topology;
30
31pub use broker::AmqpBroker;
32pub use config::AmqpConfig;