upstash-ratelimit-ts
适用于 TypeScript 的无连接 HTTP 速率限制 SDK,专为无服务器 (Serverless)、边缘计算 (Edge) 环境及 Upstash Redis 设计。
简介
upstash-ratelimit-ts SDK 是一款专为现代分布式架构设计的强大无连接速率限制解决方案。通过使用 HTTP 取代传统 TCP 连接,此程式库针对无服务器平台(如 AWS Lambda、Vercel Functions、Cloudflare Workers 与 Fastly Compute@Edge)进行了最佳化。它使开发人员能够在 Node.js、Deno 与各种边缘计算环境中,轻松防止服务滥用、调整流量并管理 API 使用成本。
-
支援多种速率限制演算法:固定窗口 (Fixed Window)、滑动窗口 (Sliding Window) 与令牌桶 (Token Bucket),实现对请求频率的精确控制。
-
与 Upstash Redis 原生整合,在全球部署中实现低延迟的状态持续性。
-
支援分析功能,可直接透过 Upstash 仪表板追踪被封锁与成功的请求。
-
内建流量保护功能,包括基于 IP 的封锁、用户代理 (User-Agent) 过滤与基于国家的存取控制。
-
具备极高的可携性,可在 WebAssembly、浏览器环境及无法维持持久 TCP 连接的无服务器计算模型中顺畅运作。
-
若要开始使用,请透过传入 Redis 连接字串与选择的演算法来初始化 Ratelimit 实例,然后将其套用到特定路由或 API 处理常式中。
-
请确保正确设定 UPSTASH_REDIS_REST_URL 与 UPSTASH_REDIS_REST_TOKEN 等环境变量,以建立无连接工作阶段。
-
在 limit 方法中使用识别码参数(例如 IP 位址或用户 ID),以便针对每个用户进行细粒度的流量调节。
-
利用 waitUntil 函数进行非同步的分析报告,以最大限度地减少无服务器环境中的请求延迟。
-
请注意 Redis 的成本影响;若在多个应用程序或服务间共用单一 Redis 实例,建议使用前缀 (prefix) 来管理键值命名空间。
仓库统计
- Star 数
- 2,036
- Fork 数
- 47
- Open Issue 数
- 5
- 主要语言
- TypeScript
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年5月3日 02:24