[package]
edition = "2021"
rust-version = "1.85"
name = "reliakit"
version = "0.1.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Reliability building blocks for Rust: validated primitives, secrets, bounded collections, backoff, circuit breaker, rate limiting, timeouts, and strict JSON. Zero-dependency, no_std-friendly, no unsafe. One name; enable only the building blocks you need via features."
homepage = "https://github.com/satyakwok/reliakit"
documentation = "https://docs.rs/reliakit"
readme = "README.md"
keywords = [
"reliability",
"resilience",
"no-std",
"validation",
"toolkit",
]
categories = [
"rust-patterns",
"no-std",
"development-tools",
]
license = "MIT"
repository = "https://github.com/satyakwok/reliakit"
[package.metadata.docs.rs]
features = [
"full",
"std",
]
[features]
alloc = [
"reliakit-primitives?/alloc",
"reliakit-secret?/alloc",
"reliakit-validate?/alloc",
"reliakit-collections?/alloc",
"reliakit-codec?/alloc",
]
backoff = ["dep:reliakit-backoff"]
circuit = ["dep:reliakit-circuit"]
codec = ["dep:reliakit-codec"]
codec-primitives = [
"codec",
"primitives",
"reliakit-codec?/primitives",
]
collections = ["dep:reliakit-collections"]
core = [
"dep:reliakit-core",
"reliakit-circuit?/core",
"reliakit-ratelimit?/core",
"reliakit-timeout?/core",
]
decide = ["dep:reliakit-decide"]
default = ["std"]
derive = ["dep:reliakit-derive"]
full = [
"core",
"primitives",
"secret",
"validate",
"collections",
"codec",
"backoff",
"circuit",
"ratelimit",
"timeout",
"json",
"derive",
"decide",
]
json = ["dep:reliakit-json"]
json-canonical = [
"json",
"reliakit-json?/canonical",
]
json-primitives = [
"json",
"primitives",
"reliakit-json?/primitives",
]
json-validate = [
"json",
"validate",
"reliakit-json?/validate",
]
primitives = ["dep:reliakit-primitives"]
ratelimit = ["dep:reliakit-ratelimit"]
secret = ["dep:reliakit-secret"]
std = [
"alloc",
"reliakit-core?/std",
"reliakit-primitives?/std",
"reliakit-secret?/std",
"reliakit-validate?/std",
"reliakit-collections?/std",
"reliakit-codec?/std",
"reliakit-json?/std",
"reliakit-decide?/std",
]
timeout = ["dep:reliakit-timeout"]
validate = ["dep:reliakit-validate"]
[lib]
name = "reliakit"
path = "src/lib.rs"
[[example]]
name = "config_check"
path = "examples/config_check.rs"
required-features = [
"primitives",
"validate",
"secret",
]
[[example]]
name = "resilient_client"
path = "examples/resilient_client.rs"
required-features = [
"timeout",
"ratelimit",
"circuit",
"backoff",
]
[[example]]
name = "typed_json"
path = "examples/typed_json.rs"
required-features = [
"json",
"primitives",
]
[dependencies.reliakit-backoff]
version = "0.1"
optional = true
default-features = false
[dependencies.reliakit-circuit]
version = "0.2"
optional = true
default-features = false
[dependencies.reliakit-codec]
version = "0.2"
optional = true
default-features = false
[dependencies.reliakit-collections]
version = "0.3"
optional = true
default-features = false
[dependencies.reliakit-core]
version = "0.1"
optional = true
default-features = false
[dependencies.reliakit-decide]
version = "0.1"
optional = true
default-features = false
[dependencies.reliakit-derive]
version = "0.1"
optional = true
default-features = false
[dependencies.reliakit-json]
version = "0.2"
optional = true
default-features = false
[dependencies.reliakit-primitives]
version = "0.4"
optional = true
default-features = false
[dependencies.reliakit-ratelimit]
version = "0.1"
optional = true
default-features = false
[dependencies.reliakit-secret]
version = "0.1"
optional = true
default-features = false
[dependencies.reliakit-timeout]
version = "0.1"
optional = true
default-features = false
[dependencies.reliakit-validate]
version = "0.3"
optional = true
default-features = false
[lints.rust]
unsafe_code = "forbid"