Skip to main content

tower_rate_limiter/
lib.rs

1//! Keyed HTTP rate limiting middleware for Tower.
2//!
3//! The crate is Tower-first: the core interfaces do not require Axum, Tokio, Redis, or a
4//! particular request identity policy. Optional adapters are enabled through Cargo features.
5
6mod limiter;
7mod store;
8
9pub use limiter::{
10    ClientIpKeyExtractor, ConfigError, DefaultResponseFactory, IpKeyExtractor, KeyExtractor, LimitProvider, Policy,
11    RateLimit, RateLimitBuilder, RateLimitContext, RateLimitError, RateLimitFields, RateLimitLayer, ResponseFactory,
12    ResponseFuture, ResponseReason, Store, StoreFailureMode, TrustedProxyClientIpKeyExtractor, Usage,
13};
14
15#[cfg(feature = "memory")]
16pub use store::{MemoryStore, MemoryStoreError};
17
18#[cfg(all(feature = "redis", any(feature = "runtime-tokio", feature = "runtime-smol")))]
19pub use store::{RedisStore, RedisStoreError};