v1.0 -- production ready
Rate limitingthat doesn't break.
Redis-backed request control, API key management, live observability, and production-grade enforcement through one clean service.
SCROLL
FIXED WINDOW.SLIDING WINDOW.TOKEN BUCKET.REDIS-BACKED.EDGE-READY.OPEN SOURCE.<1MS.GLOBALLY CONSISTENT.FIXED WINDOW.SLIDING WINDOW.TOKEN BUCKET.REDIS-BACKED.EDGE-READY.OPEN SOURCE.<1MS.GLOBALLY CONSISTENT.FIXED WINDOW.SLIDING WINDOW.TOKEN BUCKET.REDIS-BACKED.EDGE-READY.OPEN SOURCE.<1MS.GLOBALLY CONSISTENT.FIXED WINDOW.SLIDING WINDOW.TOKEN BUCKET.REDIS-BACKED.EDGE-READY.OPEN SOURCE.<1MS.GLOBALLY CONSISTENT.
WHY RATESHIELD
<1ms
MEDIAN LATENCY
99.99%
AVAILABILITY
12k+
CHECKS / SEC / NODE
3
ALGORITHMS
WHY RATESHIELD
Built like infrastructure.
Designed like a tool.
Three algorithms, one API
Fixed window, sliding window, and token bucket. Pick per route.
Distributed by default
Backed by Redis. No race conditions. Globally consistent counters.
Live observability
Every check is logged. Every block is visible. No black boxes.
checkout.ts
import { rateshield } from "@rateshield/sdk";
const rs = rateshield({ key: process.env.RSH_KEY });
app.post("/api/checkout", async (req, res) => {
const { allowed, reset } = await rs.check({
route: "/api/checkout",
keyBy: "user",
userId: req.user.id,
});
if (!allowed) return res.status(429).json({ resetAt: reset });
// ... handle request
});Stop guessing.Start measuring.
Free for the first 100k requests/month. No card required.
Get your API key