@tehdev/rate-limiter-redis
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

Distributed redis rate limiter

This package is implementaion of an abstract rate limiter

How use

  1. Install package npm i @tehdev/rate-limiter-redis
  2. Install redis package npm i ioredis
  3. Initialize rate limiter
import { RateLimiterRedis, RateConfig } from "@tehdev/rate-limiter-redis";
import Redis from "ioredis";

const clients = {
  client_1: new RateConfig(10, 1000), // 10 rps for client_1
};

const redis = new Redis(redisOptions);

const rateLimiter = new RateLimiterRedis(clients, redis);
  1. Start rate limiter server (create quota). When you run server on many instances from all instances rateLimiter will choose master node. Only this node will isue a quota to the all nodes.
rateLimiter.run();
  1. Use quota
await rateLimiter.wait("client_1"); // return True when quota exists

Package Sidebar

Install

npm i @tehdev/rate-limiter-redis

Weekly Downloads

0

Version

0.0.4

License

MIT

Unpacked Size

14.5 kB

Total Files

4

Last publish

Collaborators

  • tehnarenok