oven-sh/bun

开发工具

用一个快速二进制替代 Node 运行时、npm install、Jest 和打包器,面向 JavaScript/TypeScript 项目。

96,386
5,123
Rust
NOASSERTION
上线 5 年

解决什么问题

一个典型的 JavaScript 项目往往要叠运行时、包管理器、测试框架和打包器,每个都有自己的配置、缓存和启动开销,工具链本身的成本有时比业务代码还高。Bun 把这些合并成一个 bun 可执行文件,定位是 Node.js 的 drop-in replacement,让现有项目换一个二进制就能先跑起来看看。

有什么不同

常规组合是 Node.js + npm/pnpm + Jest/Vitest + esbuild/webpack,Bun 的选择是把它们都收进一个工具。底层用 JavaScriptCore 而不是 V8,仓库主体是 Rust,这决定了它的取舍。真正有区分度的只有三点:内置 TypeScript/JSX 执行,不需要单独转译步骤;包管理器重新实现了 npm 客户端的行为;打包器以 Bun.build 的形式提供,README 里还有与 esbuild 的对比文档。代价也很直接:引擎和「Node 兼容到什么程度」都由同一个团队决定,而不是像传统方案那样每个环节都能单独替换。

适合谁

适合新起 TS/JS 服务、脚本或小型全栈应用、想减少依赖数量并加快安装的开发者。大量使用 Node 原生扩展、模块解析方式特殊、或者团队坚持「一个工具只干一件事」的项目,继续用 Node 加成熟工具更稳妥。如果看重长期稳定性,应等稳定版本线并先读兼容性文档。

上手成本

Bun 为 Linux、macOS、Windows 的 x64 和 arm64 提供原生二进制。Linux 建议内核 5.6 以上(最低 5.1),较老的 x64 CPU 可能报 illegal instruction,需要先看 CPU requirements。安装支持 curl/powershell 脚本、npm、Homebrew 和 Docker,升级用 bun upgrade。许可证是 NOASSERTION 而非明确的 OSI 标识;README 基本是文档索引,没有兼容性矩阵;每个 commit 都发布 canary 构建,节奏很快。

点评

Bun 已经是成熟项目,不是短期爆红。项目 2021 年创建,近 96.4k stars 和 5000 多 fork 说明采用是持续的,而非发布当天的热度。它没上过 GitHub 每日 trending,但本周 Rust 周榜 #4、新增 +207 stars,HN 上 723 分的移植指南讨论也说明迁移意愿仍在。对新 JS 项目,可以把它当作严肃选项逐项目评估;但别假设现有 Node 应用能原样跑通,先测再说。

Hacker News 讨论

Zig → Rust porting guide
▲ 723 · 555 条评论 · 2026年5月5日
Rewrite Bun in Rust has been merged
▲ 708 · 789 条评论 · 2026年5月14日
Bun Rust rewrite: "codebase fails basic miri checks, allows for UB in safe rust"
▲ 488 · 345 条评论 · 2026年5月15日

本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。