社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub 2.5万星!日本开发者打造的Hono火了:定义后React时代微框架的轻量未来

InfoQ • 2 月前 • 111 次点击  
作者 | Richard MacManus
译者 | 平川
策划 | Tina

本文最初发布于 THENEWSTACK 博客。

本周,一个名为 Hono 的 Web 框架在 X 上 官宣,它在 GitHub 已经得到了 25000 个星标。虽然已不算是默默无闻,但 Hono 并没有得到应有的关注。不像 React,Hono 是基于 Web 标准构建的,它似乎可以表明 后 React 时代Web 框架的发展方向。

Hono 是由日本开发者 Yusuke Wada 在 2021 年 12 月创建的。根据其 GitHub 存储库的介绍,Hono 在日语中意为“火焰”,是“基于 Web 标准构建的一个小巧、简单、速度超快的 Web 框架”。它最初是为 Cloudflare Workers 构建的,但现在可以在“任何 JavaScript 运行时”上运行,包括 Node.js、Deno、Bun 和 Vercel(尽管 Node 支持需要适配器,并且 Node ≥ 18)。

2023 年,Wada 在 Cloudflare 任职,他把一些工作时间花在了 Hono 上。从他 2024 年 10 月发布在 Cloudflare 博客上的声明 来看,对于这个项目,他寄予了厚望:

与 Next.js 框架源于客户端且使用了 React 不同,Hono 试图成为一个源于服务器端的全栈框架。

应用场景

那么你可以用 Hono 做什么呢?在去年 10 月 YouTube Cloudflare 开发频道的 一次采访 中,Wada 表示,他对 Hono 应用场景的多样性感到惊讶。他说:

有些人用它构建经典的 Web API,有些人用它开发全栈应用,还有些人用它运行文档站点,我甚至看到它被用来在 Next.js 内部实现 API 层。用户不断想出我从未想象过的用例,这是最令人兴奋的部分。

根据 项目文档,在 Cloudflare 内部,Hono 用于三个不同的 API 服务器,其中两个(KV 和 D1)是内部的,一个是公共的(cdnjs)。

图片

Hono 首页

直接比较的话,最好把 Hono 看成是 Express 的现代替代品,后者是 Node.js 的中间件 Web 框架。使用 Hono 的主要好处是它不仅能在 Node.js 上运行,而且在基准测试中,它在 Node.js 上的运行速度通常比 Express 还稍快一些。

Hono 与 Express 的区别在于它是基于 Fetch API 构建的,这是一个 WHATWG 标准,定义了“请求、响应以及将它们绑定在一起的过程:获取”。

因此,对于那些想要摆脱 Node.js 和 Express 的开发者来说,Hono 或许可以成为他们解决方案的一部分。

一位开发者在 Hacker News 上说,“在我所有的个人项目中,我一直在使用 Hono + Bun + SQLite,我真的很喜欢它。基本上,我已经用它替换了 Express 和 Node。”

与 Next.js 比较

当 Wada 说 Hono 正在构建一个全栈框架时,他主要是指 HonoX,这是一个在 Hono 之上的元框架,包括基于文件的路由。

他解释说,“当你使用 HonoX 时,你其实已经自动在底层使用 Hono,这让你能够创建完整的全栈应用”。HonoX 也是基于流行的前端构建工具 Vite 构建的。

写这篇文章的时候,HonoX GitHub 项目有 2300 个星标,被描述为“Alpha 阶段”。因此,作为一个全栈解决方案,Hono 还处于非常早期的阶段。

尽管 Wada 将 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 在后 React 世界中的位置

虽然将 Hono 与 Next.js 相提并论有点过于雄心勃勃(特别是考虑到 HonoX 仍在 Alpha 阶段),但 Hono 似乎确实是一个可以表明未来发展方向的指示器。与 Next.js 或 Remix 不同,Hono 并不内置 React。你可以返回 JSON,流式传输 HTML,或者只在需要时将 HonoX 置于 JSX islands 之上。这种“可选择 UI”反映了 Web 开发生态系统开始 从一体化的庞然大物中脱离出来。

像 Next.js 这样的“超级框架”时代开始逐渐消逝。相反,开发者越来越多地转向更适中的框架。在比较大的项目中,他们使用像 Astro 这样的 Web 标准,而现在,他们又有了专门用于边缘场景的 Hono。

Hono 更多地属于“微框架”阵营,所以它实际上并不能与 Next.js 或者 Astro 相提并论。但它同样值得关注,就像那些更大的框架一样。

原文链接:

https://thenewstack.io/hono-shows-the-way-for-microframeworks-in-a-post-react-world/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐
刚刚,扎克伯格发文正式告别“默认开源”!网友:只剩中国 DeepSeek、通义和 Mistral 还在撑场面
创始人拒绝投资13年、仅有几十人的开源项目斩获81k+ GitHub star,用户破百万!网友:他一个人拯救了PHP
“老中间件”自救:昔日并发王者、十五年开源老将全力押注Agentic AI找活路,转型做 Java 版 LangChain
扣子官宣开源,掀桌大动作背后如何决策?扣子负责人独家披露

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185116