Skip to main content

dome_throttle/
lib.rs

1//! `dome-throttle` -- Token-bucket rate limiting and budget tracking for Thunder Dome.
2//!
3//! Two complementary mechanisms:
4//!
5//! - **RateLimiter**: Token-bucket per-identity and per-tool rate limits using DashMap
6//!   for lock-free concurrent access.
7//! - **BudgetTracker**: Cumulative spend tracking per identity with rolling time windows.
8//!
9//! Both are designed for the Thunder Dome interceptor chain, returning `DomeError::RateLimited`
10//! or `DomeError::BudgetExhausted` on violation.
11
12pub mod budget;
13pub mod rate_limiter;
14pub mod token_bucket;
15
16pub use budget::{Budget, BudgetTracker, BudgetTrackerConfig};
17pub use rate_limiter::{BucketKey, RateLimiter, RateLimiterConfig};
18pub use token_bucket::TokenBucket;