Gathering detailed insights and metrics for ratelimiter
Gathering detailed insights and metrics for ratelimiter
Gathering detailed insights and metrics for ratelimiter
Gathering detailed insights and metrics for ratelimiter
npm install ratelimiter
Typescript
Module System
Node Version
NPM Version
JavaScript (98.9%)
Makefile (1.1%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
722 Stars
125 Commits
62 Forks
12 Watchers
12 Branches
18 Contributors
Updated on Jun 26, 2025
Latest Version
3.4.1
Package Id
ratelimiter@3.4.1
Size
4.90 kB
NPM Version
5.5.1
Node Version
6.9.1
Published on
Feb 24, 2020
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
Rate limiter for Node.js backed by Redis.
NOTE: Promise version available at async-ratelimiter.
v3.4.1 - #55 by @barwin - Remove splice operation.
v3.3.1 - #51 - Remove tidy option as it's always true.
v3.3.0 - #47 by @penghap - Add tidy option to clean old records upon saving new records. Drop support in node 4.
v3.2.0 - #44 by @xdmnl - Return accurate reset time for each limited call.
v3.1.0 - #40 by @ronjouch - Add reset milliseconds to the result object.
v3.0.2 - #33 by @promag - Use sorted set to limit with moving window.
v2.2.0 - #30 by @kp96 - Race condition when using async.times
.
v2.1.3 - #22 by @coderhaoxin - Dev dependencies versions bump.
v2.1.2 - #17 by @waleedsamy - Add Travis CI support.
v2.1.1 - #13 by @kwizzn - Fixes out-of-sync TTLs after running decr().
v2.1.0 - #12 by @luin - Adding support for ioredis.
v2.0.1 - #9 by @ruimarinho - Update redis commands to use array notation.
v2.0.0 - API CHANGE - Change remaining
to include current call instead of decreasing it. Decreasing caused an off-by-one problem and caller could not distinguish between last legit call and a rejected call.
$ npm install ratelimiter
Example Connect middleware implementation limiting against a user._id
:
1var id = req.user._id; 2var limit = new Limiter({ id: id, db: db }); 3limit.get(function(err, limit){ 4 if (err) return next(err); 5 6 res.set('X-RateLimit-Limit', limit.total); 7 res.set('X-RateLimit-Remaining', limit.remaining - 1); 8 res.set('X-RateLimit-Reset', limit.reset); 9 10 // all good 11 debug('remaining %s/%s %s', limit.remaining - 1, limit.total, id); 12 if (limit.remaining) return next(); 13 14 // not good 15 var delta = (limit.reset * 1000) - Date.now() | 0; 16 var after = limit.reset - (Date.now() / 1000) | 0; 17 res.set('Retry-After', after); 18 res.send(429, 'Rate limit exceeded, retry in ' + ms(delta, { long: true })); 19});
total
- max
valueremaining
- number of calls left in current duration
without decreasing current get
reset
- time since epoch in seconds at which the rate limiting period will end (or already ended)resetMs
- time since epoch in milliseconds at which the rate limiting period will end (or already ended)id
- the identifier to limit against (typically a user id)db
- redis connection instancemax
- max requests within duration
[2500]duration
- of limit in milliseconds [3600000]MIT
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
Found 5/25 approved changesets -- score normalized to 2
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
license file not detected
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
29 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-06-30
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More