better-ratelimit
Better, smaller, faster - koa middleware for limit request by ip, store in-memory.
Install
Install with npm
$ npm install koa-better-ratelimit
$ npm test
This package follows ferver
Please read history.md for more info!
- option
message_429
deprecated >=v2.1.x, instead useaccessLimited
- option
message_403
deprecated >=v2.1.x, instead useaccessForbidden
Usage
Some demo example which is exactly
example.js
var app = limit = ; app; app; var port = processenvPORT || 3333;app;console;
.koaBetterRatelimit
With options through init you can control black/white lists, limit per ip and reset interval.
[options]
{Object}duration
{Integer} Limit duration in milliseconds, default1000 * 60 * 60 * 1
(1 hour)whiteList
{Array} All ips that won't be limited, defaultempty array
blackList
{Array} All ips that always be limited and 403, defaultempty array
accessLimited
{String} Message for all requests after limit, default429: Too Many Requests.
accessForbidden
{String} Message for limited/forbidden, default403: This is forbidden area for you.
max
{Integer} Max requests per ip, default500
env
{Boolean} Manage enviroment, for tests will usex-koaip
header, defaultnull
return
{GeneratorFunction}
Diferences
Between koa-better-ratelimit and koa-ratelimit
- Support blackList and whiteList options
- Pure in-memory store, no other adapters
duration
option in seconds, not in milliseconds- 7 working tests
- removed
db
option - added
Retry-After
header - added separate 403 and 429 option messages
Between koa-better-ratelimit and koa-limit
- koa-limit is totally broken (to v1.0.1)
- removed
redis
and test dependencies - smaller, better, working, simple
- added separate 403 and 429 option messages
Authors & Contributors
License
Copyright (c) 2014 Charlike Make Reagent, contributors.
Released under the MIT
license.