[package]
name = "governor"
version = "0.7.0"
authors = ["Andreas Fuchs <asf@boinkor.net>"]
edition = "2018"
license = "MIT"
homepage = "https://github.com/boinkor-net/governor"
repository = "https://github.com/boinkor-net/governor.git"
readme = "README.md"
description = "A rate-limiting implementation in Rust"
documentation = "https://docs.rs/governor"
categories = ["algorithms", "network-programming", "concurrency", "no-std"]
keywords = ["rate-limiting", "rate-limit", "no_std", "gcra"]
autobenches = false
[badges]
maintenance = { status = "actively-developed" }
[[bench]]
name = "governor_criterion_benches"
harness = false
[lib]
bench = false
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]
[dev-dependencies]
criterion = {version = "0.5.1", features = ["html_reports"]}
tynm = "0.1.4"
crossbeam = "0.8.0"
libc = "0.2.70"
futures-executor = "0.3.31"
proptest = "1.0.0"
all_asserts = "2.2.0"
[features]
default = ["std", "dashmap", "jitter", "quanta"]
quanta = ["dep:quanta"]
std = ["no-std-compat/std", "nonzero_ext/std", "dep:futures-timer", "dep:futures-util", "dep:futures-sink", "dep:parking_lot"]
jitter = ["rand"]
no_std = ["no-std-compat/compat_hash"]
[dependencies]
nonzero_ext = { version = "0.3.0", default-features = false }
parking_lot = { version = "0.12", optional = true }
spinning_top = "0.3"
portable-atomic = { version = "1.6", features = ["require-cas"] }
futures-timer = { version = "3.0.3", optional = true }
futures-util = { version = "0.3.31", optional = true, default-features = false, features = ["std", "sink"] }
futures-sink = { version = "0.3.31", optional = true }
rand = { version = "0.8.0", optional = true }
dashmap = { version = "6.1.0", optional = true }
quanta = { version = "0.12.0", optional = true }
no-std-compat = { version = "0.4.1", features = [ "alloc" ] }
cfg-if = "1.0"
smallvec = "1.6.1"