taskvisor 0.4.1

Task supervisor for Tokio: restarts background tasks on failure with exponential backoff and jitter, graceful shutdown, and lifecycle events
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.4.1"
build = false
exclude = [
    ".env",
    ".github/",
    ".gitignore",
    "Taskfile.yml",
    "rust-toolchain.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Task supervisor for Tokio: restarts background tasks on failure with exponential backoff and jitter, graceful shutdown, and lifecycle events"
documentation = "https://docs.rs/taskvisor"
readme = "README.md"
keywords = [
    "supervisor",
    "tokio",
    "retry",
    "restart",
    "backoff",
]
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 = ["dep:dashmap"]
default = []
logging = []
test-util = []
tokio-util-interop = []
tracing = ["dep:tracing"]

[lib]
name = "taskvisor"
path = "src/lib.rs"

[[example]]
name = "admission"
path = "examples/admission.rs"
required-features = ["controller"]

[[example]]
name = "basic"
path = "examples/basic.rs"

[[example]]
name = "cpu_job"
path = "examples/cpu_job.rs"

[[example]]
name = "dynamic"
path = "examples/dynamic.rs"

[[example]]
name = "metrics"
path = "examples/metrics.rs"

[[example]]
name = "multiple"
path = "examples/multiple.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 = "slots"
path = "examples/slots.rs"
required-features = ["controller"]

[[example]]
name = "subscriber"
path = "examples/subscriber.rs"

[[example]]
name = "tracing"
path = "examples/tracing.rs"
required-features = ["tracing"]

[[example]]
name = "worker"
path = "examples/worker.rs"

[[test]]
name = "concurrency"
path = "tests/concurrency.rs"

[[test]]
name = "controller"
path = "tests/controller.rs"
required-features = ["controller"]

[[test]]
name = "failure"
path = "tests/failure.rs"

[[test]]
name = "identity"
path = "tests/identity.rs"

[[test]]
name = "lifecycle"
path = "tests/lifecycle.rs"

[[test]]
name = "shutdown"
path = "tests/shutdown.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.dashmap]
version = "6.1.0"
optional = true

[dependencies.fastrand]
version = "2.4.1"

[dependencies.thiserror]
version = "2.0.18"

[dependencies.tokio]
version = "1.52.3"
features = [
    "rt-multi-thread",
    "macros",
    "time",
    "sync",
    "signal",
]

[dependencies.tokio-util]
version = "0.7.18"

[dependencies.tracing]
version = "0.1.44"
features = ["std"]
optional = true
default-features = false

[dev-dependencies.criterion]
version = "0.8.2"
features = ["async_tokio"]

[dev-dependencies.prometheus]
version = "0.14.0"
default-features = false

[dev-dependencies.rayon]
version = "1.12.0"

[dev-dependencies.tracing-subscriber]
version = "0.3.23"
features = [
    "fmt",
    "env-filter",
    "ansi",
]
default-features = false