taskvisor 0.8.0

In-process Tokio task supervisor with retries, graceful shutdown, reliable final outcomes, and per-key admission control
Documentation
[package]
name         = "taskvisor"
version      = "0.8.0"
edition      = "2024"
rust-version = "1.90.0"

description   = "In-process Tokio task supervisor with retries, graceful shutdown, reliable final outcomes, and per-key admission control"
repository    = "https://github.com/soltiHQ/taskvisor"
documentation = "https://docs.rs/taskvisor"
license       = "Apache-2.0"
readme        = "README.md"

keywords   = ["tokio", "task-supervisor", "retry", "graceful-shutdown", "admission-control"]
categories = ["asynchronous", "concurrency"]

exclude = [
    ".env",
    ".github/",
    ".gitignore",
    "Taskfile.yml",
    "rust-toolchain.toml",
]

[features]
controller         = []
default            = ["controller"]
logging            = []
test-util          = []
tracing            = ["dep:tracing"]
tokio-util-interop = []

[package.metadata.docs.rs]
features     = ["logging", "tracing", "controller", "tokio-util-interop", "test-util"]
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
tokio        = { version = "1.53.1", features = ["rt-multi-thread", "macros", "time", "sync", "signal"] }
tokio-util   = "0.7.19"
thiserror    = "2.0.20"
fastrand     = "2.5.0"
futures-util = { version = "0.3.33", default-features = false, features = ["std", "async-await"] }
tracing      = { version = "0.1.44", optional = true, default-features = false, features = ["std"] }

[dev-dependencies]
anstream           = "1.0.0"
anstyle            = "1.0.14"
criterion          = { version = "0.8.2", features = ["async_tokio"] }
tracing-subscriber = { version = "0.3.23", default-features = false, features = ["fmt", "env-filter", "ansi"] }
prometheus         = { version = "0.14.0", default-features = false }
rayon              = "1.12.0"
serde              = { version = "1.0.228", features = ["derive"] }
serde_json         = "1.0.149"
tokio              = { version = "1.53.1", features = ["test-util"] }
libc               = "0.2.186"

[[example]]
name              = "controller_slots"
required-features = ["controller"]

[[example]]
name              = "controller_admission"
required-features = ["controller"]

[[example]]
name              = "tenant_sync"
required-features = ["controller"]

[[example]]
name              = "tracing"
required-features = ["tracing"]

[[example]]
name              = "logging"
required-features = ["logging"]

[[bench]]
name    = "lifecycle"
harness = false

[[bench]]
name    = "throughput"
harness = false

[[bench]]
name    = "fanout"
harness = false

[[bench]]
name    = "dynamic"
harness = false

[[bench]]
name              = "controller"
harness           = false
required-features = ["controller"]

[[test]]
name              = "controller"
required-features = ["controller"]