animir/node-rate-limiter-flexible/rate-limiter-flexible

Claude Code and agent skill by animir/node-rate-limiter-flexible

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use this skill whenever working with rate limiting, brute-force protection, DoS mitigation, or the `rate-limiter-flexible` npm package in Node.js. Triggers include: mentions of 'rate limit', 'rate-limiter-flexible', 'RateLimiter', 'brute force protection', 'login endpoint protection', 'too many requests', '429', throttling in Node.js, or configuring limiters with Redis/Mongo/MySQL/PostgreSQL/Memory/Memcached/DynamoDB/Drizzle/Prisma/SQLite/Cluster/PM2/Etcd/Valkey. Also trigger when writing Express/Koa/Hapi middleware for request limiting, or protecting APIs and websockets from flooding. Use this skill even for tangential questions about rate limiting architecture, choosing a store backend, or scaling rate limiters in distributed systems.

Install

npx vskill@latest install animir/node-rate-limiter-flexible/rate-limiter-flexible

SKILL.md

rate-limiter-flexible

Harden application security against brute-force and DoS attacks. Atomic and non-atomic counters and rate limiting tools for Node.js, Deno, and browsers (Memory limiter). Zero production dependencies. Enhanced fixed window algorithm. ISC license.

  • Install: npm i rate-limiter-flexible
  • ESM: import { RateLimiterMemory } from "rate-limiter-flexible"
  • CommonJS: const { RateLimiterMemory } = require("rate-limiter-flexible")

When to Use This Skill

  • Configuring any rate-limiter-flexible limiter (options, API, store setup)
  • Writing Express/Koa/Hapi rate limiting middleware
  • Implementing login brute-force protection or DoS mitigation
  • Choosing between store backends (Redis vs Memory vs Mongo vs etc.)
  • Setting up insurance strategy, in-memory block strategy, or BurstyRateLimiter
  • Understanding RateLimiterRes object and HTTP response headers

Quick Reference

See references/full-reference.md for the complete guide covering:

  • All options (common + store-specific) with defaults
  • All API methods (consume, get, set, block, delete, penalty, reward, deleteInMemoryBlockedAll)
  • RateLimiterMemory best-effort persistence via dump() / restore() (snapshot state for graceful restarts)
  • All 15+ limiter types (Redis, Memory, Mongo, MySQL, PostgreSQL, DynamoDB, Memcached, Prisma, Drizzle, SQLite, Etcd, Valkey, Cluster, PM2)
  • Composite limiters (BurstyRateLimiter, RateLimiterUnion, RateLimiterQueue)
  • Wrappers (Black/White lists, Timeouts, AWS SDK v3)
  • Code examples for every common pattern

Essential Patterns at a Glance

Basic Usage
js
const { RateLimiterMemory } = require("rate-limiter-flexible");
const limiter = new RateLimiterMemory({
points: 10, // 10 requests
duration: 1, // per second
});
limiter.consume(req.ip)
.then((res) => { /* allowed */ })
.catch((res) => {
if (res instanceof Error) { /* store error */ }
else { /* rate limited — res is RateLimiterRes */ }
});
HTTP Response Headers
js
const headers = {
"Retry-After": rateLimiterRes.msBeforeNext / 1000,
"X-RateLimit-Limit": opts.points,
"X-RateLimit-Remaining": rateLimiterRes.remainingPoints,
"X-RateLimit-Reset": Math.ceil((Date.now() + rateLimiterRes.msBeforeNext) / 1000)
};
Key Defaults
OptionDefaultNotes
pointsRequiredMax consumable over duration
durationRequiredSeconds before reset; 0 = never expire
keyPrefix'rlflx'Must be unique per limiter
blockDuration0Seconds to block after points exhausted

Links

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
3,506
Repository forks
185
Repository npm downloads, 7 days
1,848,385
7-day trend score
72

Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 24 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/animir/node-rate-limiter-flexible/rate-limiter-flexible/badge)](https://verified-skill.com/skills/animir/node-rate-limiter-flexible/rate-limiter-flexible)

Something wrong with this skill or its page? Tell us.