Skip to main content

queue_runtime/
lib.rs

1//! # Queue Runtime
2//!
3//! Multi-provider queue runtime for reliable message processing with support for
4//! Azure Service Bus, AWS SQS, RabbitMQ, NATS, and in-memory implementations.
5//!
6//! This library provides:
7//! - Provider-agnostic queue operations
8//! - Session-based ordered message processing
9//! - Dead letter queue support
10//! - Retry policies with exponential backoff
11//! - Batch operations where supported
12//!
13//! ## Module Organization
14//!
15//! - [`error`] - Error types for all queue operations
16//! - [`message`] - Message structures and receipt handles
17//! - [`provider`] - Provider types and configuration
18//! - [`client`] - Client traits and implementations
19//!
20//! See specs/interfaces/queue-client.md for complete specification.
21
22// Module declarations
23pub mod client;
24pub mod error;
25pub mod message;
26pub mod provider;
27pub mod providers;
28pub mod sessions;
29
30// Re-export commonly used types at crate root for convenience
31pub use client::{
32    QueueClient, QueueClientFactory, QueueProvider, SessionClient, SessionProvider,
33    StandardQueueClient,
34};
35pub use error::{ConfigurationError, QueueError, SerializationError, ValidationError};
36pub use message::{
37    Message, MessageId, QueueName, ReceiptHandle, ReceivedMessage, SessionId, Timestamp,
38};
39pub use provider::{
40    AwsSqsConfig, AzureServiceBusConfig, InMemoryConfig, ProviderConfig, ProviderType, QueueConfig,
41    SessionSupport,
42};
43pub use providers::nats::NatsConfig;
44pub use providers::rabbitmq::RabbitMqConfig;
45pub use providers::{
46    AwsError, AwsSessionProvider, AwsSqsProvider, AzureAuthMethod, AzureError,
47    AzureServiceBusProvider, AzureSessionProvider, InMemoryProvider, InMemorySessionProvider,
48    NatsError, NatsProvider, NatsSessionProvider, RabbitMqError, RabbitMqProvider,
49    RabbitMqSessionProvider,
50};
51pub use sessions::{
52    CompositeKeyStrategy, FallbackStrategy, NoOrderingStrategy, SessionAffinity,
53    SessionAffinityTracker, SessionInfo, SessionKeyExtractor, SessionKeyGenerator,
54    SessionLifecycleConfig, SessionLifecycleManager, SessionLock, SessionLockManager,
55    SingleFieldStrategy,
56};