Bun 掀了谁桌子?一个叛经离道的运行时正把 Node.js 逼到墙角

朋友上周跑来跟我吐槽——Node.js 慢得像头老黄牛,装个依赖得等一壶茶烧开。我说你咋不用 Bun?他一脸懵:那个小东西真敢用在生产环境?

没错,就是这个小东西。1.0 版本发布刚过一年,GitHub 星标逼近 80k。但别被数字骗了,这背后是一场针对开发者工具链的 精准外科手术

快,是一种宗教体验

用过 Bun 的人都有种错觉:是不是换了一台电脑?启动一个 React 项目——Node 还在解析 package.json 呢,Bun 已经给你刷出 127.0.0.1:3000。这感觉像从机械硬盘跳到 NVMe,回不去了。官方那个 bench 图我盯着看了五分钟——请求吞吐量是 Node 的 4 倍,包安装快 25 倍。不是百分比,是倍数。

Bun runtime request throughput benchmark comparison chart 2024
Bun runtime request throughput benchmark comparison chart 2024

内核是 Zig 写的,JavaScriptCore 引擎,这些技术选择根本就是冲着 Node 的软肋去的。V8 启动慢?换。C++ 臃肿?用 Zig。npm 生态割裂?内置一个自己的包管理器,直接兼容 Node 模块——连转译器都给你塞进来了。什么 webpack,什么 babel,全成了历史包袱。

说实话,这策略野蛮得让人喜欢。过去十年,我们可被「分治」思想害惨了:包管理找 pnpm,打包用 webpack,转译用 tsc,运行靠 node。Bun 一句「我全都要」,就把桌子掀了。

包管理的降维打击?先别急着喊革命

pnpm 的粉丝肯定要拍桌子——Bun 的 bun install 号称快如闪电,但它那个二进制 lockfile 嘛……不,可,读。真遇上报错,你连手动修的机会都没有。这就是取舍,粗暴得不像开源项目。

更狠的是,它把 package.json 里的 scripts 全换成了自己的 bun run,背后其实走了一个叫「macro」的东西。你可以直接在代码里写 await Bun.sql`SELECT * FROM users`,根本不用 ORM 层包装。这思路太激进了——把数据库查询和文件读写拉平到语言级别。要是真铺开,多少中间件得失业?

Bun package manager install speed comparison with npm pnpm
Bun package manager install speed comparison with npm pnpm

但巨头们不会坐以待毙。Node.js 新版本悄悄加速了模块解析,Deno 也在拼命兼容 npm。未来 12 个月,我敢打赌——工具链整合会变成血海。谁先把「一键部署边缘函数」这个闭环跑通,谁就能吃下 Serverless 的大饼。Bun 的杀手锏是内置的 bun deploy?别开玩笑了,那只是个玩具。它需要云服务商级别的集成。我猜 Oven(Bun 背后的公司)迟早得搞一个 Bun Cloud,按调用次数收钱,就像 Vercel 对 Next.js 做的。

谁在为速度买单?商业化的阿喀琉斯之踵

谁在为速度买单?商业化的阿喀琉斯之踵
谁在为速度买单?商业化的阿喀琉斯之踵

现在 Bun 还是免费的。靠风投养着,员工二十来人。这模式能撑多久?开源项目变成商业公司,哪次不是一地鸡毛——看看 Docker 的前车之鉴。

不过,Jarred 这哥们有点意思。他曾在 Stripe 工作,深谙开发者工具怎么从 「痒点」变成「痛点」。Bun 的边际成本低得吓人:一次打包好的二进制文件,用户自己下载就完了,不需要中心化服务器。那盈利点在哪?托管服务的高溢价。想象一下:你把 Next.js 项目推上去,Bun Cloud 在 300+ 边缘节点瞬间起爆,冷启动 5ms——而且账单比 Lambda 便宜 60%。这饼画得是不是挺香?

但护城河太浅。Node 生态 20 年的积淀,不是靠速度就能一夜颠覆的。真正卡脖子的,是那些 用 C++ 写的原生模块。Bun 的兼容层再努力,碰上 bcrypt 这种硬骨头还是得跪。这玩意儿在 Node 里编译都得折腾半天,在 Bun 里直接报错——运行时不一样,ABI 全乱套。

所以,现在该怎么做?我的行动建议干脆利落:如果你的新项目是纯 TypeScript、没有历史包袱,立刻上 Bun,体验坐火箭的感觉。但别在生产环境上用 —— 除非你有能力把原生模块全部替换成纯 JS 实现,或者赌 Oven 公司两年内不会倒闭。别笑,选技术栈就是选生态赌未来。赌赢了,你比同行快三倍;赌输了,半夜起来迁移代码的泪,都是今天脑子进的水。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:Bun 掀了谁桌子?一个叛经离道的运行时正把 Node.js 逼到墙角
文章链接:https://m.lfdjt.com/info_23_8089.html