GitHub2.5万星!日本开发者打造的Hono火了:定义后React时代

一个叫Hono的Web框架,在X上宣布自己在GitHub拿到了25000个星标。

Hono是日本开发者Yusuke Wada在2021年12月搞出来的。Hono在日语里是“火焰”的意思,GitHub上对它的介绍是“一个基于Web标准构建的小巧、简单、运行快的Web框架”。

它起初是为Cloudflare Workers做的,现在可以在“任何JavaScript运行时”上跑,包括Node。js、Deno、Bun还有Vercel。用在Node。js上需要一个适配器,而且Node版本得是18以上。

Wada在2023年加入了Cloudflare,他的一部分工作时间也用在了Hono上。他自己对这个项目想法不少,他说Hono想成为一个从服务器端出发的全栈框架,这跟Next。js那种从客户端出发、用了React的框架,路子不一样。

所以Hono能干嘛?Wada在一次YouTube采访里说,他自己都没想到Hono的用法这么多。

“有人用它写传统的Web API,有人用它做全栈应用,有人拿它跑文档网站,我甚至看到有人在Next。js里面用它做API层。”

用户们想出来的用法,他自己都没料到,这让他感觉很兴奋。

Cloudflare内部也在用,Hono支撑着三个API服务器,两个内部用,一个对外。

Hono跟Express有点像,可以看作是Express的一个新选择。Express是Node。js的老牌中间件Web框架。用Hono的好处是它不只在Node。js上跑。

它的底层是Fetch API,这是一个WHATWG标准,定义了“请求、响应以及把它们连起来的过程:获取”。

所以想换掉Node。js和Express的开发者,Hono可能就是他们方案里的一块拼图。

有个开发者在Hacker News上留言:“我自己的所有项目都换成了Hono+Bun+SQLite,用着挺爽。基本上就是用这套替换了Express和Node。”

Wada说的全栈框架,主要是指HonoX。这东西是Hono上面的一个元框架,带了基于文件的路由功能。

他解释,“用了HonoX,底层就自动用了Hono,这样就能创建完整的全栈应用”。HonoX也是基于前端构建工具Vite做的。

HonoX的GitHub项目现在有2300个星标,状态是“Alpha阶段”。作为一个全栈方案,Hono还在早期。

拿Hono去跟Next。js比…有点像拿自行车跟跑车比。

Hono本身很轻,专注在服务器和运行时层面,比如路由、中间件、响应这些。它的设计就是跟UI无关的:你可以返回JSON,也可以流式传输HTML,或者通过HonoX加上自己的模板或者JSX/SSR。

Next。js是一个庞大、有自己一套规矩的端到端React技术栈。它里面包含了基于文件的路由、服务器组件、数据获取、用Turbopack打包、图片优化等等功能。它既管UI,也管后端。

Hono的一个优势,可能是它对边缘网络的关注。它为所有运行时设计,很适合那些需要在边缘运行的API或者微服务。

Cloudflare的文档把Hono描述成“一个运行快、轻量的框架,能用来构建Web应用”。Cloudflare建议,把Hono和Cloudflare Workers一起用,是个有效的全栈方案。“有了Workers Assets,你可以把Workers上跑的Hono API和React SPA结合起来,做成一个全栈应用。”

如果你已经在Cloudflare的生态里,Hono跟Cloudflare的KV、R2、D1、Durable Objects、Queues这些产品能很好地配合。

虽然拿Hono跟Next。js放一起说有点野心大了,特别是HonoX还在Alpha阶段。但Hono似乎指出了一个未来的方向。它跟Next。js或者Remix不一样,它没有内置React。

你可以返回JSON,或者流式传输HTML,或者只在需要的时候,用HonoX加上JSX islands。这种“UI可选”的思路,反映了Web开发圈子正在从那种什么都包办的大框架里脱身。

像Next。js这种“超级框架”的时代,似乎在慢慢过去。开发者们开始越来越多地看一些体量适中的框架。在一些大项目里,他们用Astro这样的Web标准框架,现在,他们又有了Hono,专门用在边缘场景。

Hono属于“微框架”那一类,所以它跟Next。js或者Astro其实不是一回事。但它也值得看一看,就像那些大框架一样。

原文链接:,转发请注明来源!