我使用 Koa 很多年了,一直很喜欢它简洁的设计哲学。近几年在 Cloudflare Worker 上开发较多,接触到了 Hono 。Hono 也是一个不错的框架,但在深入使用后,我对它的一些设计理念并不是很认同,于是萌生了自己造个轮子的想法。
我为新框架设定了三条核心原则:
- 微内核架构:与 Koa 类似,保留了洋葱模型的中间件设计,同时还补充了插件系统
- 符合直觉的 API 设计:摒弃 Koa 的 delegates 思路,API 严格区分 ctx/ctx.req/ctx.res ,更加符合语义
- 环境无关性:可在 Node.js 、Bun 、Deno 以及 Cloudflare Worker 、Vercel 等边缘环境运行
于是 Hoa 诞生了。目前我跟另一个维护者已经为 Hoa 补充了近 30 个常用中间件,我也已经将手头大部分项目从 Koa 迁移至 Hoa 。今天分享出来,希望更多人去使用,也期待收到更多反馈,共同把 Hoa 框架打磨得更好。
- GitHub: Hoa
- 官网: hoa-js.com
特点
- Minimal - Only ~4.4KB (gzipped).
- Zero Dependencies - Built on modern Web Standards with no external dependencies.
- Highly Extensible - Features a flexible extension and middleware system.
- Standards-Based - Designed entirely around modern Web Standard APIs.
- Multi-Runtime - The same code runs on Cloudflare Workers, Deno, Bun, Node.js, and more.
- 100% Tested Backed by a full-coverage automatedtest suite.
安装
npm i hoa --save 快速开始
import { Hoa } from 'hoa' const app = new Hoa() app.use(async (ctx, next) => { ctx.res.body = 'Hello, Hoa!' }) export default app License
MIT
