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