Rate Limiting
Middleware providing rate limiting functionality.
Key Features
-
RateIssuerprovides an abstraction for identifying visitor keys.RemoteIpIssueris one of its implementations, which determines visitors based on their IP addresses. Keys are not necessarily strings; any type satisfying theHash + Eq + Send + Sync + 'staticconstraints can serve as a key. -
RateGuardoffers an abstraction for rate limiting algorithms. Default implementations include fixed window (FixedGuard) and sliding window (SlidingGuard). -
RateStoreprovides data storage operations.MokaStoreis a built-in in-memory cache implementation based onmoka. You can also define your own implementation. -
RateLimiteris a struct implementingHandler, which includes askipperfield to specify requests that should bypass rate limiting. By default,none_skipperis used, meaning no requests are skipped. -
QuotaGetterprovides an abstraction for retrieving quotas. It fetches a quota object based on the visitor'sKey, allowing user quotas and other configurations to be stored in databases and dynamically modified or retrieved.
Example Code