Policies
Defining rate limits using Policy objects.
A Policy defines the rules for rate limiting. It specifies the limit, window, algorithm, and optional burst capacity.
Anatomy of a Policy
interface Policy {
name: string; // Unique identifier for the policy
limit: number; // Max requests allowed
window: number; // Time window in seconds
algorithm: Algorithm; // Rate limiting algorithm
burst?: number; // Optional burst capacity (Token Bucket only)
blockDuration?: number; // Optional blocking duration in seconds
}Creating Policies
You can create custom policies or use presets.
Custom Policy
from halt import Policy, Algorithm
custom_policy = Policy(
name="custom_limit",
limit=500,
window=3600,
algorithm=Algorithm.SLIDING_WINDOW
)Using Presets
Halt comes with built-in presets for common scenarios.
import { presets } from 'halt';
// presets.PUBLIC_API: 100 req/min (Token Bucket)
// presets.AUTH_ENDPOINTS: 5 req/min (Fixed Window)
// presets.EXPENSIVE_OPS: 10 req/min (Sliding Window)