8000 GitHub - major-jay/rate-limiter: Redis rate limiter for Node.js
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

major-jay/rate-limiter

 
 

Repository files navigation

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.

About

Redis rate limiter for Node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 90.0%
  • Lua 8.8%
  • Shell 1.2%
0