relentless 0.7.1

Composable retry policies for fallible operations and polling.
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.85"
name = "relentless"
version = "0.7.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Composable retry policies for fallible operations and polling."
homepage = "https://docs.rs/relentless"
documentation = "https://docs.rs/relentless"
readme = "README.md"
keywords = [
    "retry",
    "backoff",
    "polling",
    "resilience",
    "no-std",
]
categories = [
    "asynchronous",
    "no-std",
    "rust-patterns",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/camercu/relentless"

[features]
alloc = []
default = ["std"]
embassy-sleep = ["dep:embassy-time"]
futures-timer-sleep = [
    "dep:futures-timer",
    "std",
]
gloo-timers-sleep = ["dep:gloo-timers"]
std = [
    "alloc",
    "embassy-time?/std",
]
tokio-sleep = [
    "dep:tokio",
    "std",
]

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

[[example]]
name = "async-cancel"
path = "examples/async-cancel.rs"
required-features = ["tokio-sleep"]

[[example]]
name = "async-polling"
path = "examples/async-polling.rs"
required-features = ["tokio-sleep"]

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

[[example]]
name = "hooks-and-stats"
path = "examples/hooks-and-stats.rs"

[[example]]
name = "sync-cancel"
path = "examples/sync-cancel.rs"
required-features = ["std"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[bench]]
name = "retry_hot_paths"
path = "benches/retry_hot_paths.rs"
harness = false

[dependencies.embassy-time]
version = "0.3"
optional = true
default-features = false

[dependencies.futures-timer]
version = "3"
optional = true

[dependencies.pin-project-lite]
version = "0.2"

[dependencies.tokio]
version = "1"
features = ["time"]
optional = true
default-features = false

[dev-dependencies.reqwest]
version = "0.12"
features = ["blocking"]

[dev-dependencies.stats_alloc]
version = "0.1"

[dev-dependencies.tokio]
version = "1"
features = [
    "macros",
    "rt-multi-thread",
    "signal",
]

[dev-dependencies.tokio-util]
version = "0.7"
features = ["rt"]

[target.'cfg(target_arch = "wasm32")'.dependencies.gloo-timers]
version = "0.3"
features = ["futures"]
optional = true
default-features = false