1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//! MockForge AMQP (RabbitMQ) Protocol Support
//!
//! This crate provides AMQP 0.9.1 protocol support for MockForge,
//! enabling testing of message queue patterns, pub/sub, and enterprise messaging scenarios.
//!
//! ## Features
//!
//! - Full AMQP 0.9.1 protocol implementation
//! - Connection and channel management
//! - Exchange types: direct, fanout, topic, headers
//! - Queue operations with TTL and dead-letter support
//! - Publisher confirms and transactions
//! - Message acknowledgment tracking
//!
//! ## Metrics and Observability
//!
//! The AMQP broker includes built-in metrics collection for monitoring:
//! - Connection and channel counts
//! - Message publish/consume/ack/reject rates
//! - Queue and exchange tracking
//! - Error rates and latency
//!
//! Use [`AmqpMetrics`] to collect metrics and [`AmqpMetricsExporter`] to export
//! in Prometheus format.
//!
//! ## Example
//!
//! ```rust,ignore
//! use mockforge_amqp::{AmqpBroker, AmqpSpecRegistry};
//! use mockforge_core::config::AmqpConfig;
//! use std::sync::Arc;
//!
//! #[tokio::main]
//! async fn main() {
//! let config = AmqpConfig {
//! enabled: true,
//! host: "127.0.0.1".to_string(),
//! port: 5672,
//! ..Default::default()
//! };
//!
//! let spec_registry = Arc::new(AmqpSpecRegistry::new(config.clone()).await.unwrap());
//! let broker = AmqpBroker::new(config, spec_registry);
//!
//! // Start the broker
//! broker.start().await.unwrap();
//! }
//! ```
pub use AmqpBroker;
pub use AmqpConnection;
pub use ;
pub use AmqpSpecRegistry;
pub use ;