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