[package]
name = "tower-resilience-executor"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
rust-version.workspace = true
readme = "../../README.md"
description = "Executor delegation layer for Tower services - parallel request processing"
categories = ["asynchronous", "concurrency", "rust-patterns"]
keywords = ["tower", "executor", "resilience", "middleware", "parallel"]

[dependencies]
tower = { workspace = true }
tower-layer = { workspace = true }
tower-service = { workspace = true }
tokio = { workspace = true, features = ["rt", "sync"] }
pin-project-lite = { workspace = true }

# Optional dependencies
tracing = { workspace = true, optional = true }
metrics = { workspace = true, optional = true }

[dev-dependencies]
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "time"] }
tower-resilience-core = { workspace = true, features = ["testing"] }

[features]
default = []
# Enable distributed tracing via the tracing crate
tracing = ["dep:tracing"]
# Enable Prometheus metrics (spawned tasks, completion times)
metrics = ["dep:metrics"]
