GitHub - oven-sh/bun: 极速 JavaScript 运行时、打包器、测试运行器和包管理器 – 一体化工具 · GitHub
Bun
什么是 Bun?
Bun 是一个面向 JavaScript 和 TypeScript 应用的一体化工具包。它以一个名为 bun 的单一可执行文件的形式提供。
其核心是 Bun 运行时,一个快速、可无缝替代 Node.js 的 JavaScript 运行时。它使用 Zig 语言编写,底层基于 JavaScriptCore 引擎,从而显著减少了启动时间和内存占用。
bun run index.tsx # 原生支持 TypeScript 和 JSX
bun 命令行工具还集成了测试运行器、脚本运行器和与 Node.js 兼容的包管理器。
你不再需要为了开发安装上千个 node_modules,只需要一个 bun。
Bun 的内置工具比现有方案快得多,并且可以在现有 Node.js 项目中零成本或低成本地直接使用。
bun test # 运行测试
bun run start # 运行 package.json 中的 `start` 脚本
bun install # 安装包
bunx cowsay 'Hello, world!' # 执行一个包
安装
Bun 支持 Linux(x64 和 arm64)、macOS(x64 和 Apple Silicon)以及 Windows(x64 和 arm64)。
Linux 用户:强烈建议使用内核版本 5.6 或更高,最低要求是 5.1。 x64 用户:如果你看到”非法指令”等错误,请查看我们的 CPU 要求。
# 使用安装脚本(推荐)
curl -fsSL https://bun.com/install | bash
# 在 Windows 上
powershell -c "irm bun.sh/install.ps1 | iex"
# 使用 npm
npm install -g bun
# 使用 Homebrew
brew tap oven-sh/bun
brew install bun
# 使用 Docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
升级
要升级到最新版本的 Bun,请运行:
bun upgrade
Bun 会在每次提交到 main 分支时自动发布一个 canary 构建版本。要升级到最新的 canary 构建版本,请运行:
bun upgrade --canary
快速链接
- 介绍
- 模板
- 运行时
核心亮点
1. 极致的性能
Bun 的启动速度极快(实测空项目启动仅约 8ms),并且其 HTTP 服务器在处理请求时通常表现出更低的延迟和更高的吞吐量。这是因为它使用了优化过启动速度的 JavaScriptCore 引擎,并且底层基于 Zig 语言构建。
2. 一体化的工具链
Bun 的目标是替代当今复杂、碎片化的工具链,如 Node.js、Jest、Webpack、esbuild、Babel、yarn 等。它将包管理器、测试运行器、打包器等功能集成于一身,大幅简化开发流程。
3. 出色的兼容性
Bun 被设计为 Node.js 的无缝替代品,可以在现有 Node.js 项目中零成本或低成本地使用其内置工具。
4. 前沿的集成能力
Bun 持续演进,在 1.3 版本中已成为一个”功能完备”的全栈 JavaScript 运行时,为前端开发提供一流支持,并引入了内置的热模块替换(HMR)和 React Fast Refresh。它还内置了 PostgreSQL、MySQL 和 Redis 客户端,提供了强大的开箱即用能力。
与 Node.js 和 Deno 的对比
与 Node.js 和 Deno 相比,Bun 在性能上表现突出,尤其在启动速度和 HTTP 服务器方面。
虽然 Deno 在 TypeScript 工具链(格式化、Linting)上更全面,但 Bun 提供了一个高度兼容、性能领先且不断成熟的替代方案。
