← 返回信息流
GitHub 热榜GitHub Trending · 日·2 小时前

Bun:极速JavaScript运行时、打包器、测试运行器和包管理器,集于一身

原标题:oven-sh/bun
Rust93,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(fetchBlobReadableStream 等)。

亮点 / 与同类相比

  • 性能大幅领先:在启动时间、包安装速度、测试执行速度上,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 upgradebun upgrade --canary(最新 canary)。
  • 快速体验:bun run index.tsx 运行 TypeScript 文件;bun test 运行测试;bun install <pkg> 安装包;bunx cowsay 'Hello' 免安装执行包。
查看原文 →github.com