Module rate_limit

Module rate_limit 

Source
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ยง

RateLimiter
Shared rate limiter state keyed by client IP.
TokenBucket ๐Ÿ”’
A token bucket for a single client IP.

Functionsยง

extract_client_ip ๐Ÿ”’
Extracts the client IP from the request. Checks X-Forwarded-For first (for reverse proxy setups), then falls back to X-Real-IP, and finally defaults to 127.0.0.1.
rate_limit_middleware
Axum middleware that enforces rate limits.