rate-limiter-flexible counts and limits number of actions by key and protects from DDoS and brute force attacks at any scale. It works with Redis, process Memory, Cluster or PM2, Memcached, MongoDB, MySQL, PostgreSQL and allows to control of requests rate in single process or distributed environment. All operations in memory or distributed environments use atomic increments against race conditions. Combine limiters, block key for some duration, delay actions, manage failover with insurance options, configure smart key blocking in memory and many others. Average request takes 0.7ms in Cluster and 2.5ms in a Distributed application. See benchmarks. It provides a unified API for all limiters. Whenever your application grows, it is ready. Prepare your limiters in minutes. No matter which node package you prefer: redis or ioredis, sequelize/typeorm or knex, memcached, native driver or mongoose. It works with all of them.
Features
- Atomic increments
- Allow traffic bursts with BurstyRateLimiter
- Flexible and fast
- Ready for growth
- Deno compatible
- It uses fixed window as it is much faster than rolling window
License
ISC LicenseFollow node-rate-limiter-flexible
User Reviews
-
Node-Rate-Limiter-Flexible is a powerful solution for rate-limiting in Node.js applications. It offers flexibility and ease of use to manage API requests effectively. With customizable settings, it efficiently prevents abuse, ensures optimal performance, and enhances overall application security. A must-have tool for handling high-traffic APIs.