Bun:极速JavaScript运行时、打包器、测试运行器和包管理器,集于一身
原标题:oven-sh/bun
Rust★ 93,905 stars+82 今日
速览
Bun内置原生打包器、转译器、测试运行器和内置包管理器,启动速度比Node.js快数倍,兼容大多数npm包和CommonJS/ESM模块;适用于Web开发、API服务、CLI工具及需要快速启动和热更新的场景。
AI 深度解读
这是什么
Bun 是一个面向 JavaScript 和 TypeScript 应用的一体化工具链,由单一可执行文件 bun 交付。其核心是 Bun runtime,一个快速 JavaScript 运行时,设计为 Node.js 的即插即用替代品。Bun 使用 Rust 编写,底层采用 JavaScriptCore 引擎,大幅降低启动时间和内存占用。除运行时外,bun 命令行工具还集成了测试运行器、脚本运行器和兼容 Node.js 的包管理器。
解决的问题
传统 Node.js 开发中,开发者需要安装并独立管理多个工具:node(运行时)、npm(包管理器)、jest(测试框架)、webpack / rollup(打包器)、tsc(TypeScript 编译)等,彼此版本兼容、配置复杂。Bun 将所有功能打包为单一二进制,开箱即用。此外,Node.js 基于 V8 引擎启动慢、内存占用高;Bun 使用 JavaScriptCore 和 Rust 实现,启动速度和内存效率显著提升。对于已有 Node.js 项目,Bun 实现近乎无缝替换,无需大规模修改。
核心功能
- Bun runtime:直接运行
.ts/.tsx/.jsx文件,内置转换器,无需预编译步骤。 - 包管理器:
bun install兼容 npm / yarn / pnpm 生态,速度远超原生 npm。 - 测试运行器:
bun test兼容 Jest API,支持模拟、快照、覆盖率等。 - 脚本运行器:
bun run <script>执行package.json中的脚本。 - 打包器:内置 bundler,可用于生产构建。
- 包执行器:
bunx类似 npx,免安装执行包。 - 丰富内建 API:HTTP 服务器(
Bun.serve)、WebSocket、文件 I/O、SQLite(bun:sqlite)、PostgreSQL(Bun.sql)、Redis(Bun.redis)、S3 客户端(Bun.s3)、Cron(Bun.cron)、FFI(bun:ffi)、C 编译器(bun:ffi.cc)、HTMLRewriter、Cookie(Bun.Cookie)、CSRF(Bun.CSRF)、Secrets(Bun.secrets)、YAML/TOML/JSON5 解析、Markdown、图像处理、UUID 生成、密码哈希、gzip/deflate 压缩等。同时还兼容 Node.js API(Node-API)和大部分 Web API(fetch、Blob、ReadableStream等)。
亮点 / 与同类相比
- 性能大幅领先:在启动时间、包安装速度、测试执行速度上,Bun 通常比 Node.js 及其工具快 4-10 倍。Rust + JavaScriptCore 组合提供极低延迟。
- 零配置 TypeScript 和 JSX:无需
tsconfig或 Babel 配置即可直接运行。 - All-in-one:单一工具覆盖运行时、包管理、测试、打包,减少工具链复杂度。
- 兼容性:可直接用于现有 Node.js 项目,支持 CommonJS、ESM、
node_modules解析,并兼容 npm 生态(包括 workspaces、锁文件等)。 - 跨平台与 Docker:支持 Linux (x64/arm64)、macOS (Intel/Apple Silicon)、Windows (x64/arm64),提供官方 Docker 镜像。
- 持续更新:每日发布 canary 构建,保持跟随主分支最新功能。
适合谁用 / 上手
- 前端和后端开发者:尤其是需要快速迭代、减少工具配置的项目团队。
- Node.js 项目迁移:希望提升开发体验和性能又不想彻底重写的项目。
- JavaScript / TypeScript 新手:单一工具降低学习曲线。
- CI/CD 环境:快启动、低资源占用适合容器化部署和自动化流水线。
上手方式:
- 推荐使用安装脚本:
curl -fsSL https://bun.sh/install | bash - Windows 用户:
powershell -c "irm bun.sh/install.ps1 | iex" - 也可以通过 npm(
npm install -g bun)、Homebrew、Docker 安装。 - 升级:
bun upgrade或bun upgrade --canary(最新 canary)。 - 快速体验:
bun run index.tsx运行 TypeScript 文件;bun test运行测试;bun install <pkg>安装包;bunx cowsay 'Hello'免安装执行包。
查看原文 →github.com
