Rate Limiter
Token bucket rate limiter to control API usage or prevent spam. Allows bursts but maintains average rate over time.
JavaScript7/16/2025
#utilities#rate-limiting#performance
JavaScript
class RateLimiter { constructor(maxTokens, refillRate) { this.maxTokens = maxTokens; this.tokens = maxTokens; this.refillRate = refillRate; this.lastRefill = Date.now(); } consume(tokens = 1) { this.refill(); if (this.tokens >= tokens) { this.tokens -= tokens; return true; } return false; } refill() { const now = Date.now(); const timePassed = (now - this.lastRefill) / 1000; const tokensToAdd = Math.floor(timePassed * this.refillRate); this.tokens = Math.min(this.maxTokens, this.tokens + tokensToAdd); this.lastRefill = now; } }
...
Loading comments...