@aftership/rate-limiter

v2.0.4
The Real Redis Rate Limiter for Node.js, accept ioredis client only for redis cluster
redis rate limiter redis rate limit redis limiter rate ratelimiter ratelimit limiter limit

rate-limiter

Build Status codecov.io

node npm npm

Rate limit for Node.js, with ioredis client

Installation

npm install @aftership/rate-limiter

Dependency

The client must be an instance of ioredis library.

Examples

const Limiter = require('@aftership/rate-limiter');
const Redis = require('ioredis');

const redisClient = new Redis({
    port: 6379,
    host: '127.0.0.1',
    db: 0
});

redisClient.on('connect', (err) => {
    if (err) {
        console.log(err);
        return;
    }

    // limit to 2 request per every 10s
    const limiter = new Limiter({
        redisClient,
        key: 'the-user-api-key',
        limit: 2, // default is 10
        duration: 10 // default is 60s
    });

    limiter
        .get()
        .then((result) => {
            console.log(result);

            if (result.remaining >= 0) {
                console.log('I can do the request!');
            } else {
                console.log(`I run out of limit! Try again after ${result.reset} second.`);
            }
            process.exit(0);
        })
        .catch((e) => {
            console.log(e);
        });
});

Change log

Please refer to release page

License

Copyright (c) 2019 AfterShip

Licensed under the MIT license.

npm i @aftership/[email protected]

Metadata

  • MIT
  • >= 2.0.0
  • AfterShip
  • released 6/25/2015

Downloads

Maintainers