@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

/@tehdev/rate-limiter-redis/

    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