Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

tomjs-koa-better-ratelimit

2.1.5 • Public • Published

forked from koa-better-ratelimit

better-ratelimit NPM version Build Status Dependency Status Coveralls

Better, smaller, faster - koa middleware for limit request by ip, store in-memory.

Install Nodei.co stats

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 use accessLimited
  • option message_403 deprecated >=v2.1.x, instead use accessForbidden

Usage

Some demo example which is exactly example.js

var app   = require('koa')(),
    limit = require('./index');
 
app.use(limit({
  duration: 1000 * 60 * 3, //3 mins
  max: 5
  //blackList: ['127.0.0.1']
}));
 
app.use(function * helloWorld(next) {
  this.body = 'Hello World';
  yield next;
});
 
var port = process.env.PORT || 3333;
app.listen(3333);
console.log('Koa server start listening on port ' + port);

.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, default 1000 * 60 * 60 * 1 (1 hour)
    • whiteList {Array} All ips that won't be limited, default empty array
    • blackList {Array} All ips that always be limited and 403, default empty array
    • accessLimited {String} Message for all requests after limit, default 429: Too Many Requests.
    • accessForbidden {String} Message for limited/forbidden, default 403: This is forbidden area for you.
    • max {Integer} Max requests per ip, default 500
    • env {Boolean} Manage enviroment, for tests will use x-koaip header, default null
  • 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

Charlike Make Reagent author tips

License MIT license

Copyright (c) 2014 Charlike Make Reagent, contributors.
Released under the MIT license.

Install

npm i tomjs-koa-better-ratelimit

DownloadsWeekly Downloads

1

Version

2.1.5

License

MIT

Unpacked Size

24.2 kB

Total Files

15

Last publish

Collaborators

  • avatar