feat: add distributed rate limiting with sliding window algorithm
- RateLimiter trait with check_rate(key, config) -> RateResult - InMemoryRateLimiter: DashMap-based sliding window log per key - RateLimitConfig: configurable max_requests and window duration - RateResult: allowed/remaining/retry_after_secs for Retry-After headers - Lazy GC of expired entries (every 60s) - Thread-safe concurrent access via DashMap - 5 unit tests: limit enforcement, independent keys, remaining counter, concurrency
This commit is contained in:
@@ -17,4 +17,5 @@ pub mod groups;
|
||||
pub mod p2p;
|
||||
pub mod account;
|
||||
pub mod moderation;
|
||||
pub mod rate_limit;
|
||||
pub mod recovery;
|
||||
|
||||
Reference in New Issue
Block a user