g14o
Packages@g14o/ratelimit-express

Overview

Express.js rate limiting with Upstash Redis for middleware and route handlers.

Express.js rate limiting with Upstash Redis. Middleware and route handler wrappers over @g14o/ratelimit.

Install

pnpm add @g14o/ratelimit-express @upstash/redis @upstash/ratelimit express

@upstash/redis and @upstash/ratelimit are optional peers (in-memory fallback without Redis). express is required.

Quick start

lib/ratelimit.ts
import { createRateLimit } from "@g14o/ratelimit-express";

export const { middleware, withRateLimit, checkRateLimit } = createRateLimit({
  redis: {
    url: process.env.UPSTASH_REDIS_REST_URL!,
    token: process.env.UPSTASH_REDIS_REST_TOKEN!,
  },
});

Demo

See the express-demo app in the monorepo (pnpm demo:express).

Framework alternatives

Import paths

Use caseImport
Rate limit factoryimport { createRateLimit } from "@g14o/ratelimit-express"
Custom store helpersimport { createStore, defineStore } from "@g14o/ratelimit-express"
In-memory storeimport { memoryStore } from "@g14o/ratelimit-express/memory"
Upstash storeimport { upstashStore } from "@g14o/ratelimit-express/upstash"
Redis store (node-redis / ioredis)import { redisStore } from "@g14o/ratelimit-express/redis"
Redis / env helpersimport { createRedisClient, isBuildLikePhase } from "@g14o/ratelimit/config"

On this page