Expand description
Token-bucket rate limiting middleware for the Kroki-rs server.
Implements per-IP rate limiting using a concurrent DashMap for O(1) lookups.
When server.rate_limit.enabled = false (default), all requests pass through.
Structsยง
- Rate
Limiter - Shared rate limiter state keyed by client IP.
- Token
Bucket ๐ - A token bucket for a single client IP.
Functionsยง
- extract_
client_ ๐ip - Extracts the client IP from the request.
Checks
X-Forwarded-Forfirst (for reverse proxy setups), then falls back toX-Real-IP, and finally defaults to127.0.0.1. - rate_
limit_ middleware - Axum middleware that enforces rate limits.