Bun 1.3版本整合JavaScript工具链引发开发者争议

Bun JavaScript运行时工具包1.3版本正式发布,新增全栈开发服务器、SQL API、Redis支持等多项功能。该版本通过集成JavaScript Core垃圾收集器,实现空闲CPU时间减少100倍,内存使用降低40%。尽管月下载量超500万次,但开发者对其快速扩展存在分歧,质疑是否功能过于庞杂。Bun致力于整合碎片化的JavaScript工具链,但快速发展也带来了质量问题。

Bun JavaScript运行时和工具包的1.3版本正式发布,进一步推进了将分散的JavaScript工具链整合为单一解决方案的目标。然而快速扩张让一些开发者质疑Bun是否试图做得太多、太快。

Bun由Zig编写,基于苹果支持的JavaScript Core引擎,旨在实现高性能、Node.js兼容性以及为应用开发者提供一体化支持。

创建者Jarred Sumner和团队发布了近14000字的新功能介绍:支持热重载的全栈开发服务器(意味着代码更改会立即反映在运行的应用程序中);支持PostgreSQL、MySQL和SQLite客户端的SQL API;Redis支持;增强路由;跨平台编译为独立可执行文件;安全扫描器API;以及隔离安装以最小化依赖冲突和问题。

隔离安装意味着包(库)只能访问明确声明的依赖项。这通过在node_modules下创建特定于包的目录来实现,依赖项存储在其中,降低了包意外使用不同于其设计时使用的依赖项的风险。

软件工程师Dylan Conway声称,将JavaScript Core的垃圾收集器与Bun的事件循环集成(1.3版本的新特性)实现了空闲CPU时间减少100倍,空闲内存使用量减少40%。更密集的资源使用应该会转化为更低的托管成本。

团队提到的一些新功能,如Redis客户端,已经在之前的小版本更新中发布,但Bun快速演进毋庸置疑。项目范围稳步扩大。文档中的一条注释表明"长期来看,Bun旨在提供一个一体化工具包,以取代当今常见的复杂、分散的工具链:Node.js、Jest、Webpack、esbuild、Babel、yarn、PostCSS等。"

Bun 1.3被描述为系列版本的开始,下一步可能是发布Bake,这是一个支持React服务器组件和服务器操作的内置服务器。Bake原本计划与Bun 1.3一起发布,但Sumner在官方Discord论坛上表示"它还没有准备好,我们不想进一步延迟bun 1.3的发布。"

距离2023年9月Bun 1.0发布仅两年时间,但其受欢迎程度不断增长;Sumner表示该工具包现在每月下载量超过500万次。Bun用户包括Anthropic,该公司将其用于Claude Code CLI(命令行界面)。

然而开发者对此看法不一。一位开发者表示:"Bun已经变成了一个巨兽。几乎涵盖了某人在其环境中可能需要的每个功能";而另一位则质疑"我不确定我是否希望通常作为外部库的所有内容都来自一个地方。"

在快速发布新功能时质量有时也会受损,另一个因素可能是Zig仍在演进且仍处于预览版,撰写本文时最新版本为0.15.1。在Bun问题列表中,分段错误(非法内存访问,如越界错误)报告并不少见。

Bun在MIT许可下开源,但一些人对其背后的商业模式感到困惑。Sumner最初表示这将基于"快速无服务器托管",这也是Vercel采用的方法,其联合创始人Guillermo Rauch参与了2022年Oven的融资轮。

Reddit上一位用户发现了"Bun首个创收产品"的职位空缺,该产品将"将Bun的速度与现代AI能力相结合"。

Q&A

Q1:Bun是什么?它的主要目标是什么?

A:Bun是一个JavaScript运行时和工具包,由Zig编写,基于苹果的JavaScript Core引擎。它的主要目标是将分散的JavaScript工具链整合为单一解决方案,提供高性能、Node.js兼容性以及一体化开发支持。

Q2:Bun 1.3版本有哪些新功能?

A:Bun 1.3版本新增了支持热重载的全栈开发服务器、支持PostgreSQL/MySQL/SQLite的SQL API、Redis支持、增强路由、跨平台编译、安全扫描器API以及隔离安装功能,还优化了垃圾收集器,实现了空闲CPU时间减少100倍。

Q3:开发者对Bun快速扩张有什么担忧?

A:一些开发者担心Bun试图做得太多太快,质疑是否需要将通常作为外部库的功能都整合到一个地方。此外,快速发布新功能可能影响质量,分段错误等问题在Bun的问题列表中并不少见。

来源:The Register

0赞

好文章,需要你的鼓励

2025

10/14

10:15

分享

点赞

邮件订阅