# @elithrar/workers-hono-rate-limit 中文文档

规范地址：https://npmcn.com/package/%40elithrar/workers-hono-rate-limit/

版本：0\.5\.1
npm 元数据更新时间：2025-12-25T20:34:42.718Z
中文译文更新时间：2026-11-13T13:02:46.994Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40elithrar/workers-hono-rate-limit
原文对照：https://npmcn.com/package/%40elithrar/workers-hono-rate-limit/?lang=original
项目主页：https://github.com/elithrar/workers-hono-rate-limit
源码仓库：https://github.com/elithrar/workers-hono-rate-limit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：16.8 kB，6 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：hono \>=4\.0\.0
- 首次发布：2024-04-17T21:02:41.417Z
- 最新版本发布：2025-12-25T20:34:42.531Z
- 近 30 天下载量：3689（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 1 个）

## 中文简介

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

## 安装

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

也可以使用：`pnpm add @elithrar/workers-hono-rate-limit`、`yarn add @elithrar/workers-hono-rate-limit`、`bun add @elithrar/workers-hono-rate-limit`

## README

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

[![Build & Test](https://github.com/elithrar/workers-hono-rate-limit/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/elithrar/workers-hono-rate-limit/actions/workflows/test.yml)

Cloudflare工人的Hono中间软件 [利率限制约束](https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/)。 。 。 .

## 安装

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

## 使用量

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

```toml
# wrangler.toml

[[ratelimits]]
binding = "RATE_LIMITER"
namespace_id = "1001"
# 25 requests per 10 seconds
simple = { limit = 25, period = 10 }
```

```ts
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` 如果您需要查询用户信息, 也可以进行同步 :

```ts
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 是什么？

与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 和提交记录判断。

