[package] name = "governor" version = "0.7.0" authors = ["Andreas Fuchs "] 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"] # We use criterion, don't infer benchmark files. 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" # To ensure we don't pull in vulnerable smallvec, see https://github.com/antifuchs/governor/issues/60 smallvec = "1.6.1"