taskvisor 0.8.0

In-process Tokio task supervisor with retries, graceful shutdown, reliable final outcomes, and per-key admission control
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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