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
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
- Web
Request/Response: @g14o/ratelimit - Next.js
NextRequest/NextResponse: @g14o/ratelimit-nextjs
Import paths
| Use case | Import |
|---|---|
| Rate limit factory | import { createRateLimit } from "@g14o/ratelimit-express" |
| Custom store helpers | import { createStore, defineStore } from "@g14o/ratelimit-express" |
| In-memory store | import { memoryStore } from "@g14o/ratelimit-express/memory" |
| Upstash store | import { upstashStore } from "@g14o/ratelimit-express/upstash" |
| Redis store (node-redis / ioredis) | import { redisStore } from "@g14o/ratelimit-express/redis" |
| Redis / env helpers | import { createRedisClient, isBuildLikePhase } from "@g14o/ratelimit/config" |