Hono
Hono ——日语中意为 火焰🔥 ——是一个基于 Web 标准构建的小巧、简洁、极速的 Web 框架。 它可以运行在各种 JavaScript 运行时上:Cloudflare Workers、Fastly Compute、Deno、Bun、Vercel、Netlify、AWS Lambda、Lambda@Edge 和 Node.js。
很快,但不止于快。
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.text('Hono!'))
export default app快速开始
只需运行以下命令:
npm create hono@latestyarn create honopnpm create hono@latestbun create hono@latestdeno init --npm hono@latest特性
- 极速 🚀 ——
RegExpRouter路由器速度极快,不使用线性循环。 - 轻量 🪶 ——
hono/tiny预设小于 14kB。Hono 零依赖,只使用 Web 标准。 - 多运行时 🌍 —— 支持 Cloudflare Workers、Fastly Compute、Deno、Bun、AWS Lambda 和 Node.js。同一份代码可在所有平台上运行。
- 开箱即用 🔋 —— 提供内置中间件、自定义中间件、第三方中间件和辅助函数。
- 愉悦的开发体验 😃 —— 简洁的 API,一流的 TypeScript 支持,让“类型”贯穿开发过程。
使用场景
Hono 是一个类似 Express 的简洁 Web 应用框架,本身不包含前端。 它还可以运行在 CDN 边缘节点上,并通过中间件组合构建大型应用。 以下是一些使用场景。
- 构建 Web API
- 后端服务器代理
- CDN 前置服务
- 边缘应用
- 库的基础服务器
- 全栈应用
谁在使用 Hono?
| 项目 | 平台 | 用途 |
|---|---|---|
| cdnjs | Cloudflare Workers | 免费开源的 CDN 服务。API 服务器使用 Hono。 |
| Cloudflare D1 | Cloudflare Workers | 无服务器 SQL 数据库。内部 API 服务器使用 Hono。 |
| Cloudflare Workers KV | Cloudflare Workers | 无服务器键值数据库。内部 API 服务器使用 Hono。 |
| BaseAI | Local AI Server | 支持记忆的无服务器 AI 智能体管道,面向 Web 的开源智能体 AI 框架。API 服务器使用 Hono。 |
| Unkey | Cloudflare Workers | 开源 API 认证与授权服务。API 服务器使用 Hono。 |
| OpenStatus | Bun | 开源网站与 API 监控平台。API 服务器使用 Hono。 |
| Deno Benchmarks | Deno | 基于 V8 构建的安全 TypeScript 运行时。使用 Hono 进行性能测试。 |
| Clerk | Cloudflare Workers | 开源用户管理平台。API 服务器使用 Hono。 |
| PostHog | Node.js | 用于构建自主驱动产品的开源平台。MCP 服务器使用 Hono。 |
还有以下项目。
- Drivly - Cloudflare Workers
- repeat.dev - Cloudflare Workers
想了解更多?请参阅谁在生产环境中使用 Hono?。
一分钟了解 Hono
下面演示如何使用 Hono 为 Cloudflare Workers 创建应用。

极速
与其他用于 Cloudflare Workers 的路由器相比,Hono 的速度最快。
Hono x 402,820 ops/sec ±4.78% (80 runs sampled)
itty-router x 212,598 ops/sec ±3.11% (87 runs sampled)
sunder x 297,036 ops/sec ±4.76% (77 runs sampled)
worktop x 197,345 ops/sec ±2.40% (88 runs sampled)
Fastest is Hono
✨ Done in 28.06s.参阅更多性能测试。
轻量
Hono 非常小巧。使用 hono/tiny 预设时,压缩后的体积 小于 14KB。虽然有很多中间件和适配器,但它们只有在使用时才会被打包。作为对比,Express 的体积是 572KB。
$ npx wrangler dev --minify ./src/index.ts
⛅️ wrangler 2.20.0
--------------------
⬣ Listening at http://0.0.0.0:8787
- http://127.0.0.1:8787
- http://192.168.128.165:8787
Total Upload: 11.47 KiB / gzip: 4.34 KiB多种路由器
Hono 提供多种路由器。
RegExpRouter 是 JavaScript 领域最快的路由器。它使用派发前生成的单个大型正则表达式进行路由匹配。结合 SmartRouter 使用时,可以支持所有路由模式。
LinearRouter 的路由注册速度很快,适合每次请求都会初始化应用的环境。PatternRouter 直接添加和匹配路由模式,因此体积很小。
参阅关于路由器的更多信息。
Web 标准
由于使用 Web 标准,Hono 可以运行在很多平台上。
- Cloudflare Workers
- Fastly Compute
- Deno
- Bun
- Vercel
- AWS Lambda
- Lambda@Edge
- 其他平台
使用 Node.js 适配器,Hono 也能运行在 Node.js 上。
中间件与辅助函数
Hono 提供丰富的中间件和辅助函数,让“写得更少,做得更多”成为现实。
Hono 开箱即用的中间件和辅助函数包括:
- Basic Authentication
- Bearer Authentication
- Body Limit
- Cache
- Compress
- Context Storage
- Cookie
- CORS
- ETag
- html
- JSX
- JWT Authentication
- Logger
- Language
- Pretty JSON
- Secure Headers
- SSG
- Streaming
- GraphQL Server
- Firebase Authentication
- Sentry
- 以及更多功能!
例如,使用 Hono 只需几行代码,就可以添加 ETag 和请求日志功能:
import { Hono } from 'hono'
import { etag } from 'hono/etag'
import { logger } from 'hono/logger'
const app = new Hono()
app.use(etag(), logger())参阅关于中间件的更多信息。
开发体验
Hono 提供愉悦的“开发体验”。
借助 Context 对象,可以轻松访问 Request 和 Response。 此外,Hono 使用 TypeScript 编写,拥有完善的“类型”。
例如,路径参数会被推导为字面量类型。

此外,验证器和 Hono 客户端 hc 支持 RPC 模式。在 RPC 模式下,你可以使用 Zod 等喜欢的验证器,轻松与客户端共享服务器端 API 定义,并构建类型安全的应用。
参阅 Hono 技术栈。