1pub mod backends;
54pub mod batch;
55pub mod batch_processor;
56pub mod builder;
57pub mod dlq;
58pub mod error;
59pub mod health;
60pub mod http;
61pub mod message;
62mod message_properties;
63pub mod metrics;
64pub mod middleware;
65pub mod pool;
66pub mod strategies;
67pub mod stress;
68pub mod worker;
69
70pub use crate::backends::{MemoryBackend, MessageBackend};
72pub use crate::builder::WorkerPoolBuilder;
73pub use crate::error::{WorkerError, WorkerResult};
74pub use crate::message::{AckHandle, Message, MessageMetadata, ReceivedMessage};
75pub use crate::message_properties::MessageProperties;
76pub use crate::pool::WorkerPool;
77pub use crate::strategies::LoadBalancingStrategy;
78pub use crate::worker::{BackoffStrategy, Worker};
79
80pub use crate::backends::{ReconnectStrategy, ResilientBackend, ResilientBackendBuilder};
82
83#[cfg(feature = "rabbitmq")]
84pub use crate::backends::{RabbitMqBackend, RabbitMqConsumerConfig};
85
86#[cfg(feature = "redis-stream")]
87pub use crate::backends::{RedisStreamBackend, RedisStreamConsumerConfig};
88
89pub use crate::middleware::{
90 MessageHandler, Middleware, MiddlewareChain, MiddlewareResult, ack_nack::AckNackMiddleware,
91 batch::BatchMiddleware, circuit_breaker::CircuitBreakerMiddleware,
92 processing_timeout::ProcessingTimeoutMiddleware, retry_handler::RetryHandler,
93 tracing::TracingMiddleware,
94};
95
96#[cfg(feature = "rate-limit")]
97pub use crate::middleware::rate_limit::RateLimitMiddleware;
98
99#[cfg(feature = "metrics")]
100pub use crate::metrics::MetricsCollector;
101#[cfg(not(feature = "metrics"))]
102pub use crate::metrics::NoOpMetrics as MetricsCollector;
103
104pub use crate::batch::{
105 BatchConfig, BatchHandler, BatchMetadata, BatchStatus, MessageBatch, ReceivedBatchMessage,
106};
107pub use crate::batch_processor::BatchProcessor;
108pub use crate::dlq::{DeadLetterMessage, PoisonPillConfig, PoisonPillTracker};
109pub use crate::health::{HealthCheck, HealthStatus, WorkerHealth, WorkerPoolHealth};
110
111pub mod prelude {
113 pub use crate::backends::ReceiveResult;
114 pub use crate::backends::{MemoryBackend, MessageBackend};
115 pub use crate::backends::{ReconnectStrategy, ResilientBackend, ResilientBackendBuilder};
116 pub use crate::builder::WorkerPoolBuilder;
117 pub use crate::error::{WorkerError, WorkerResult};
118 pub use crate::message::{
119 AckHandle, Message, MessageMetadata, ReceivedJsonMessage, ReceivedMessage,
120 };
121 pub use crate::message_properties::MessageProperties;
122 pub use crate::pool::WorkerPool;
123 pub use crate::strategies::LoadBalancingStrategy;
124 pub use crate::worker::{BackoffStrategy, Worker};
125
126 #[cfg(feature = "rabbitmq")]
127 pub use crate::backends::{RabbitMqBackend, RabbitMqConsumerConfig};
128
129 #[cfg(feature = "redis-stream")]
130 pub use crate::backends::{RedisStreamBackend, RedisStreamConsumerConfig};
131
132 pub use crate::middleware::ack_nack::AckNackMiddleware;
133 pub use crate::middleware::circuit_breaker::CircuitBreakerMiddleware;
134 pub use crate::middleware::processing_timeout::ProcessingTimeoutMiddleware;
135 #[cfg(feature = "rate-limit")]
136 pub use crate::middleware::rate_limit::RateLimitMiddleware;
137 pub use crate::middleware::retry_handler::RetryHandler;
138 pub use crate::middleware::tracing::TracingMiddleware;
139 pub use crate::middleware::{MessageHandler, Middleware, MiddlewareChain, MiddlewareResult};
140
141 #[cfg(feature = "metrics")]
142 pub use crate::metrics::MetricsCollector;
143 #[cfg(not(feature = "metrics"))]
144 pub use crate::metrics::NoOpMetrics as MetricsCollector;
145 pub use crate::metrics::WorkerMetrics;
146
147 pub use crate::health::{HealthCheck, HealthStatus, WorkerHealth, WorkerPoolHealth};
148}