[package]
edition = "2024"
rust-version = "1.90.0"
name = "taskvisor"
version = "0.8.0"
build = false
exclude = [
".env",
".github/",
".gitignore",
"Taskfile.yml",
"rust-toolchain.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "In-process Tokio task supervisor with retries, graceful shutdown, reliable final outcomes, and per-key admission control"
documentation = "https://docs.rs/taskvisor"
readme = "README.md"
keywords = [
"tokio",
"task-supervisor",
"retry",
"graceful-shutdown",
"admission-control",
]
categories = [
"asynchronous",
"concurrency",
]
license = "Apache-2.0"
repository = "https://github.com/soltiHQ/taskvisor"
[package.metadata.docs.rs]
features = [
"logging",
"tracing",
"controller",
"tokio-util-interop",
"test-util",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
controller = []
default = ["controller"]
logging = []
test-util = []
tokio-util-interop = []
tracing = ["dep:tracing"]
[lib]
name = "taskvisor"
path = "src/lib.rs"
[[example]]
name = "application_shutdown"
path = "examples/application_shutdown.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "configuration"
path = "examples/configuration.rs"
[[example]]
name = "controller_admission"
path = "examples/controller_admission.rs"
required-features = ["controller"]
[[example]]
name = "controller_slots"
path = "examples/controller_slots.rs"
required-features = ["controller"]
[[example]]
name = "cpu_job"
path = "examples/cpu_job.rs"
[[example]]
name = "custom_subscriber"
path = "examples/custom_subscriber.rs"
[[example]]
name = "dynamic_tasks"
path = "examples/dynamic_tasks.rs"
[[example]]
name = "graceful_worker"
path = "examples/graceful_worker.rs"
[[example]]
name = "logging"
path = "examples/logging.rs"
required-features = ["logging"]
[[example]]
name = "metrics"
path = "examples/metrics.rs"
[[example]]
name = "outcomes"
path = "examples/outcomes.rs"
[[example]]
name = "periodic"
path = "examples/periodic.rs"
[[example]]
name = "queue_consumer"
path = "examples/queue_consumer.rs"
[[example]]
name = "restart_policies"
path = "examples/restart_policies.rs"
[[example]]
name = "task_type"
path = "examples/task_type.rs"
[[example]]
name = "tenant_sync"
path = "examples/tenant_sync.rs"
required-features = ["controller"]
[[example]]
name = "tracing"
path = "examples/tracing.rs"
required-features = ["tracing"]
[[test]]
name = "benchmark_reporter"
path = "tests/benchmark_reporter.rs"
[[test]]
name = "concurrency"
path = "tests/concurrency.rs"
[[test]]
name = "controller"
path = "tests/controller.rs"
required-features = ["controller"]
[[test]]
name = "defaults"
path = "tests/defaults.rs"
[[test]]
name = "failure"
path = "tests/failure.rs"
[[test]]
name = "identity"
path = "tests/identity.rs"
[[test]]
name = "lifecycle"
path = "tests/lifecycle.rs"
[[test]]
name = "ownership"
path = "tests/ownership.rs"
[[test]]
name = "shutdown"
path = "tests/shutdown.rs"
[[test]]
name = "signal_ownership"
path = "tests/signal_ownership.rs"
[[test]]
name = "timeout"
path = "tests/timeout.rs"
[[test]]
name = "watch"
path = "tests/watch.rs"
[[bench]]
name = "controller"
path = "benches/controller.rs"
harness = false
required-features = ["controller"]
[[bench]]
name = "dynamic"
path = "benches/dynamic.rs"
harness = false
[[bench]]
name = "fanout"
path = "benches/fanout.rs"
harness = false
[[bench]]
name = "lifecycle"
path = "benches/lifecycle.rs"
harness = false
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
[dependencies.fastrand]
version = "2.5.0"
[dependencies.futures-util]
version = "0.3.33"
features = [
"std",
"async-await",
]
default-features = false
[dependencies.thiserror]
version = "2.0.20"
[dependencies.tokio]
version = "1.53.1"
features = [
"rt-multi-thread",
"macros",
"time",
"sync",
"signal",
]
[dependencies.tokio-util]
version = "0.7.19"
[dependencies.tracing]
version = "0.1.44"
features = ["std"]
optional = true
default-features = false
[dev-dependencies.anstream]
version = "1.0.0"
[dev-dependencies.anstyle]
version = "1.0.14"
[dev-dependencies.criterion]
version = "0.8.2"
features = ["async_tokio"]
[dev-dependencies.libc]
version = "0.2.186"
[dev-dependencies.prometheus]
version = "0.14.0"
default-features = false
[dev-dependencies.rayon]
version = "1.12.0"
[dev-dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0.149"
[dev-dependencies.tokio]
version = "1.53.1"
features = ["test-util"]
[dev-dependencies.tracing-subscriber]
version = "0.3.23"
features = [
"fmt",
"env-filter",
"ansi",
]
default-features = false