Skip to main content

Module rate_limit

Module rate_limit 

Source
Expand description

Identity-aware rate limiting middleware.

Requests are keyed by authenticated identity (API key ID or user ID) when available, falling back to the client IP address. Each key gets a fixed-window counter that resets every 60 seconds.

Responses carry standard rate-limit headers:

  • X-RateLimit-Limit – maximum requests allowed per window
  • X-RateLimit-Remaining – requests left in the current window
  • X-RateLimit-Reset – epoch timestamp when the window resets

API keys with a rate_limit_override use that value instead of the server-wide default.

Structs§

RateLimitContext
Context needed by the rate limit middleware.
RateLimitState
Shared rate limiter state with fixed-window counters.

Enums§

RateLimitKey
Rate limit key: identity-based when authenticated, IP-based otherwise.

Functions§

per_minute
Build a per-identity rate limiter allowing requests_per_minute requests per minute.
rate_limit
Axum middleware that enforces identity-aware rate limiting.