OSS探訪GitHubでログイン

Serverless・Edge・Next.jsのAPIにHTTPベースの分散rate limitを組み込む

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
2,049
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/09/25
ページ内ナビ

概要

Upstash Rate LimitはUpstash Redisを利用するconnectionlessなTypeScript向けrate limiting libraryです。HTTPベースで状態を共有でき、Next.js、Vercel Edge、Cloudflare Workersなど複数instanceへ分散する実行環境でrequest制御を組み込みやすくします。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

identifier単位のrate limitをRedis上の共有状態で判定する

READMEの例ではsliding windowで10秒あたり10 requestを設定し、user ID、API key、IP address、または固定文字列をidentifierとしてlimit()の成功可否を判定します。key prefixも指定できます。

出典:[1]

2.2.0ではwindow・token bucket周辺の境界条件を修正する

2.2.0はcached fixed-windowで最後のtokenを正しく使う修正、blockUntilReadyのnegative timeout回避、remaining tokenを超えるtoken-bucket requestのreject、duration parserのdecimal値とweek unit対応を含みます。

出典:[2]

向いている用途

process内memoryを共有できないServerless/Edge APIのrate limitに向く

READMEはAWS Lambda、Vercel、Cloudflare Workers/Pages、Vercel Edge、Fastly Compute@Edge、Next.js等を対象として挙げ、Next.jsのcomplete exampleも提供しています。

出典:[1]

導入前の確認

Upstash Redisをbacking storeとして用意し、credentialとfailure behaviorを設計する

利用にはUpstash Redis clientとREST credentialが必要です。productionではURL/tokenをsecret管理し、Redisへの通信遅延や一時的な失敗がAPIのrate-limit判定へ与える影響を含めて確認してください。

出典:[1]

identifier・prefix・telemetryをdeployment単位で明示する

複数applicationでRedisを共有する場合はprefix衝突を避け、identifierが意図した利用者単位になっているかを確認します。SDK名/versionのtelemetryはenableTelemetry: falseまたはUPSTASH_DISABLE_TELEMETRYで無効化できます。

出典:[1]

参考にした公式資料

  1. [1]Upstash Rate Limit v2.2.0 README(2026-10-06)
  2. [2]Upstash Rate Limit v2.2.0 release(2026-10-06)
編集部からの補足

process内memoryを共有できないServerless/Edge APIのrate limitに向きます。identifier/prefixの設計、Upstash Redisのcredential、通信失敗時の挙動、telemetry方針をproduction前に確認してください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/upstash/ratelimit-js.git
  2. 2

    リポジトリへ移動

    cd ratelimit-js
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

2,049 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
5
Open PR
5

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • rate-limiting
  • redis
  • serverless
  • upstash
  • upstash-ratelimit
  • upstash-sdk
Stars
2,049
Forks
51
Watchers
12
Open Issues
4
Contributors
28
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/09/25

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?