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