@elithrar/workers-hono-rate-limit

中文文档
0.5.1发布于 2025/12/26Apache-2.0TypeScriptESM + CJS零依赖近 30 天下载 3689

与Cloudflare Workers的速率限制请求的相容中间软件.

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 同步密钥函数
  4. 页:1
  5. 许可证

@elithrar/ 工人- hono- rate- 限制

Build & Test

Cloudflare工人的Hono中间软件 利率限制约束。 。 。 .

安装

npm install @elithrar/workers-hono-rate-limit

使用量

  1. 添加限制利率 wrangler.toml (或 wrangler.jsonc(中文(简体) )
  2. 定义 a RateLimitKeyFunc 返回按键以限制速率
  3. 应用 rateLimit 中间软件到您的路径
# wrangler.toml

[[ratelimits]]
binding = "RATE_LIMITER"
namespace_id = "1001"
# 25 requests per 10 seconds
simple = { limit = 25, period = 10 }
import { rateLimit, RateLimitBinding, RateLimitKeyFunc } from "@elithrar/workers-hono-rate-limit";
import { Hono } from "hono";

type Bindings = {
    RATE_LIMITER: RateLimitBinding;
};

const app = new Hono<{ Bindings: Bindings }>();

// Rate limit on each API token
const getKey: RateLimitKeyFunc = (c) => c.req.header("Authorization") || "";

// Apply rate limiting to all routes
app.use("*", (c, next) => rateLimit(c.env.RATE_LIMITER, getKey)(c, next));

app.get("/", (c) => c.text("hello!"));

export default app;

您可以创建多个 rateLimit 实例,每个使用大小写都有不同的配置和关键函数,或者通过 app.use。 。 。 .

同步密钥函数

这个 keyFunc 如果您需要查询用户信息, 也可以进行同步 :

const getKey: RateLimitKeyFunc = async (c) => {
    const user = await validateToken(c.req.header("Authorization"));
    return user?.id || "";
};

页:1

  • 密钥应代表用户或一类用户的独特特征. 良好的选择包括API密钥,用户ID,或租户ID.
  • 避免使用IP地址或位置作为密钥——这些可以被许多用户共享.
  • 狦 keyFunc 返回空字符串,对该请求绕过速率限制.

许可证

Apache 2.0获得许可. 详情见LICENSE文件.

版本与发布记录

@elithrar/workers-hono-rate-limit 共发布 8 个版本,首次发布于 2024/04/18;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.5.1latest2025/12/2610 个月前
0.4.32024/04/252 年前
0.4.12024/04/182 年前
0.4.02024/04/182 年前
0.3.02024/04/182 年前
0.2.12024/04/182 年前

关于 @elithrar/workers-hono-rate-limit 的常见问题

@elithrar/workers-hono-rate-limit 是什么?

与Cloudflare Workers的速率限制请求的相容中间软件.

如何安装 @elithrar/workers-hono-rate-limit?

在项目目录运行 npm install @elithrar/workers-hono-rate-limit,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:hono(>=4.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@elithrar/workers-hono-rate-limit 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@elithrar/workers-hono-rate-limit 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@elithrar/workers-hono-rate-limit 可以商用吗?

@elithrar/workers-hono-rate-limit 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@elithrar/workers-hono-rate-limit 的下载量有多少?

根据 npm 官方下载统计,@elithrar/workers-hono-rate-limit 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,689 次,日均约 123 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@elithrar/workers-hono-rate-limit 还在维护吗?

最新版本 0.5.1 发布于 2025/12/26(10 个月前);至今共发布 8 个版本,其中过去 12 个月发布了 1 个;首次发布于 2024/04/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。