queue-runtime 0.2.0

Multi-provider queue runtime for Queue-Keeper
Documentation
[package]
description = "Multi-provider queue runtime for Queue-Keeper"
edition = "2021"
license = "Apache-2.0"
name = "queue-runtime"
repository = "https://github.com/pvandervelde/queue-runtime"
version = "0.2.0"
rust-version = "1.90"

# Crate metadata
keywords = ["github", "webhook", "api"]
categories = ["api-bindings", "web-programming"]
readme = "README.md"

[dependencies]
# Core async runtime with full features for concurrent message processing
tokio = { version = "1.52.1", features = ["full"] }
# Structured logging and tracing
tracing = "0.1.44"
# Serialization framework with derive macros for message types
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
# UUID generation for message identifiers
uuid = { version = "1.23.1", features = ["v4", "serde"] }

# Date/time handling for message timestamps
chrono = { version = "0.4.44", features = ["serde"] }

# Error handling with derive macros and flexible error types
thiserror = "2.0.18"
anyhow = "1.0.102"

# Async methods in traits (pre-1.0 but stable interface)
async-trait = "0.1.89"

# HTTP client for API interactions
reqwest = { version = "0.13.2", features = ["json"] }

# Azure Service Bus SDK
azure_messaging_servicebus = "0.21.0"
azure_core = "0.35.0"
azure_identity = "0.35.0"

# Configuration file loading from multiple formats
config = "0.15.22"

# URL parsing and manipulation
url = "2.5.8"
# Efficient byte buffer handling for message payloads
bytes = "1.11.1"
# Base64 encoding for credentials and tokens
base64 = "0.22.1"
# URL encoding for query parameters
urlencoding = "2.1.3"
# HMAC for message authentication
hmac = "0.13.0"
# SHA-2 hashing for signatures
sha2 = "0.11.0"
# Hexadecimal encoding/decoding
hex = "0.4.3"
# XML parsing for Azure Service Bus messages
quick-xml = "0.39.2"

# RabbitMQ AMQP 0-9-1 client
lapin = "4.5.0"

# NATS messaging client with JetStream support
async-nats = "0.47.0"
futures = "0.3.32"

[features]
# Gate integration tests that require Docker (NATS, RabbitMQ brokers).
# Run with: cargo test --test nats_integration --features integration-tests
#           cargo test --test rabbitmq_integration --features integration-tests
integration-tests = []

[dev-dependencies]
# Temporary file creation for tests
tempfile = "=3.27.0"
# Tokio testing utilities
tokio-test = "=0.4.5"
# Property-based testing
proptest = "=1.11.0"
# Container-based integration testing (requires Docker)
testcontainers = "=0.23.3"
testcontainers-modules = { version = "=0.11.6", features = [
    "rabbitmq",
    "nats",
] }

# ============================================================================
# Integration test binaries (require Docker; gated by integration-tests feature)
# ============================================================================

[[test]]
name = "contract_tests"
path = "tests/contract_tests.rs"

[[test]]
name = "nats_integration"
path = "tests/nats_integration.rs"
required-features = ["integration-tests"]

[[test]]
name = "rabbitmq_integration"
path = "tests/rabbitmq_integration.rs"
required-features = ["integration-tests"]