Skip to content

Hono

Hono - 在日语中意为火焰🔥 - 是一个小巧、简单且超快速的基于 Web 标准构建的 Web 框架。它可以在任何 JavaScript 运行时环境中工作:Cloudflare Workers、Fastly Compute、Deno、Bun、Vercel、Netlify、AWS Lambda、Lambda@Edge 和 Node.js。

🌐 Hono - means flame🔥 in Japanese - is a small, simple, and ultrafast web framework built on Web Standards. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, Netlify, AWS Lambda, Lambda@Edge, and Node.js.

快速,但不仅仅是快速。

🌐 Fast, but not only fast.

ts
import { 
Hono
} from 'hono'
const
app
= new
Hono
()
app
.
get
('/', (
c
) =>
c
.
text
('Hono!'))
export default
app

快速入门

🌐 Quick Start

只需运行这个:

🌐 Just run this:

sh
npm create hono@latest
sh
yarn create hono
sh
pnpm create hono@latest
sh
bun create hono@latest
sh
deno init --npm hono@latest

功能

🌐 Features

  • 超快 🚀 - 路由 RegExpRouter 真的是非常快。没有使用线性循环。很快。
  • 轻量级 🪶 - hono/tiny 预设小于 14kB。Hono 没有任何依赖,仅使用 Web 标准。
  • 多运行时 🌍 - 可在 Cloudflare Workers、Fastly Compute、Deno、Bun、AWS Lambda 或 Node.js 上运行。相同的代码可在所有平台上运行。
  • 内置功能齐全 🔋 - Hono 内置了中间件、自定义中间件、第三方中间件以及辅助工具。功能齐全。
  • 令人愉快的 DX 😃 - 超干净的 API。一流的 TypeScript 支持。现在,我们有了“类型”。

用例

🌐 Use-cases

Hono 是一个类似于 Express 的简单 web 应用框架,没有前端。但它可以运行在 CDN 边缘,并允许你在结合中间件时构建更大型的应用。下面是一些使用案例的示例。

🌐 Hono is a simple web application framework similar to Express, without a frontend. But it runs on CDN Edges and allows you to construct larger applications when combined with middleware. Here are some examples of use-cases.

  • 构建 Web API
  • 后端服务器的代理
  • CDN 前端
  • Edge 应用
  • 库的基本服务器
  • 全栈应用

谁在使用 Hono?

🌐 Who is using Hono?

项目平台用途
cdnjsCloudflare Workers一个免费且开源的 CDN 服务。Hono 用于 API 服务器
Cloudflare D1Cloudflare Workers无服务器 SQL 数据库。Hono 用于内部 API 服务器
Cloudflare Workers KVCloudflare Workers无服务器键值数据库。Hono 用于内部 API 服务器
BaseAI本地 AI 服务器具有记忆功能的无服务器 AI 代理管道。一个面向网页的开源智能代理 AI 框架。使用 Hono 的 API 服务器
UnkeyCloudflare Workers一个开源的 API 身份验证和授权。Hono 用于 API 服务器
OpenStatusBun一个开源的网站和 API 监控平台。API 服务器使用 Hono
Deno 基准测试Deno一个基于 V8 的安全 TypeScript 运行时。Hono 用于基准测试
ClerkCloudflare Workers一个开源的用户管理平台。Hono 用于 API 服务器

以及以下内容。

🌐 And the following.

你想查看更多吗?请参见 谁在生产中使用 Hono?

🌐 Do you want to see more? See Who is using Hono in production?.

1 分钟内掌握 Hono

🌐 Hono in 1 minute

使用 Hono 为 Cloudflare Workers 创建应用的演示。

🌐 A demonstration to create an application for Cloudflare Workers with Hono.

A gif showing a hono app being created quickly with fast iteration.

超快

🌐 Ultrafast

Hono 是最快的,与其他 Cloudflare Workers 路由相比。

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.

查看更多基准测试(/docs/concepts/benchmarks)。

🌐 See more benchmarks.

轻量级

🌐 Lightweight

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

多个路由

🌐 Multiple routers

Hono 有多台路由

RegExpRouter 是 JavaScript 世界中最快的路由。它使用在分发前创建的单个大型正则表达式来匹配路由。使用 SmartRouter,它支持所有路由模式。

LinearRouter 注册路由非常快,因此适合每次都初始化应用的环境。PatternRouter 只是添加和匹配模式,使其体积小。

查看更多有关路线的信息(/docs/concepts/routers)。

🌐 See more information about routes.

Web 标准

🌐 Web Standards

多亏了网络标准的使用,Hono 可以在许多平台上运行。

🌐 Thanks to the use of the Web Standards, Hono works on a lot of platforms.

  • Cloudflare Workers
  • Fastly 计算
  • Deno
  • Bun
  • Vercel
  • AWS Lambda
  • Lambda@Edge
  • 其他

通过使用 Node.js 适配器,Hono 可以在 Node.js 上运行。

🌐 And by using a Node.js adapter, Hono works on Node.js.

查看有关网页标准的更多信息

🌐 See more information about Web Standards.

中间件和助手

🌐 Middleware & Helpers

Hono 有许多中间件和辅助工具。这使得“少写代码,多做事”成为现实。

开箱即用,Hono 提供中间件和助手:

🌐 Out of the box, Hono provides middleware and helpers for:

例如,使用 Hono 添加 ETag 和请求日志记录只需要几行代码:

🌐 For example, adding ETag and request logging only takes a few lines of code with Hono:

ts
import { Hono } from 'hono'
import { etag } from 'hono/etag'
import { logger } from 'hono/logger'

const app = new Hono()
app.use(etag(), logger())

查看更多有关中间件的信息 [/docs/concepts/middleware]。

🌐 See more information about Middleware.

开发者体验

🌐 Developer Experience

Hono 提供了令人愉快的“开发者体验”。

🌐 Hono provides a delightful "Developer Experience".

由于 Context 对象,可以轻松访问请求/响应。此外,Hono 是用 TypeScript 编写的。Hono 有“类型”。

🌐 Easy access to Request/Response thanks to the Context object. Moreover, Hono is written in TypeScript. Hono has "Types".

例如,路径参数将是字面量类型。

🌐 For example, the path parameters will be literal types.

A screenshot showing Hono having proper literal typing when URL parameters. The URL "/entry/:date/:id" allows for request parameters to be "date" or "id"

并且,Validator 和 Hono 客户端 hc 启用了 RPC 模式。在 RPC 模式下,你可以使用你喜欢的验证器,例如 Zod,并轻松地与客户端共享服务器端 API 规范,构建类型安全的应用。

🌐 And, the Validator and Hono Client hc enable the RPC mode. In RPC mode, you can use your favorite validator such as Zod and easily share server-side API specs with the client and build type-safe applications.

参见 Hono Stacks

🌐 See Hono Stacks.

Hono 中文网 - 粤ICP备13048890号