taskvisor 0.7.0

In-process Tokio task supervisor with retries, reliable outcomes, and per-key queue/replace/reject admission
Documentation
[package]
name         = "taskvisor"
version      = "0.7.0"
edition      = "2024"
rust-version = "1.90.0"

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

keywords   = ["tokio", "supervisor", "keyed", "admission-control", "retry"]
categories = ["asynchronous", "concurrency"]

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

[features]
controller         = ["dep:dashmap"]
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.52.3", features = ["rt-multi-thread", "macros", "time", "sync", "signal"] }
tokio-util = "0.7.18"
thiserror  = "2.0.18"
fastrand   = "2.4.1"
dashmap    = { version = "6.1.0", optional = true }
tracing    = { version = "0.1.44", optional = true, default-features = false, features = ["std"] }

[dev-dependencies]
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"
tokio              = { version = "1.52.3", features = ["test-util"] }

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

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

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

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

[[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"]