Hoa - 一个极简 Web 框架
我使用 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 automated test 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