[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