news 2026/9/19 20:04:54

Bun简介

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Bun简介

https://github.com/oven-sh/bun

https://bun.com /

Bun 是用于运行 JavaScript 和 TypeScript 应用程序的集成工具包。它以单一可执行文件的形式发布,文件名为 bun 。

Anthropic 收购 Bun

https://bun.sh/blog/bun-joins-anthropic#bun-joins-anthropic

2025 年 12 月 2 日 Anthropic 宣布收购 Bun。这是Anthropic成立以来的首次公开收购,也是Bun团队的一个重大转折点。

  1. 强化 Claude Code 等核心产品的技术底座

    Claude Code 作为其年化营收超 10 亿美元的核心产品,本身就是以 Bun 可执行文件形式交付,收购能避免外部依赖风险,保障该产品稳定运行。

  2. 适配 AI 编程爆发式增长的基础设施需求

    Bun 的高性能、单文件可执行等特性,契合 AI 编程自主编写、运行、修改代码的需求,可作为 AI 编程的适配基础设施。

  3. 吸纳优质技术团队与完善生态布局

    Bun 当前月下载量超 700 万,GitHub 上有超 8.6 万星,还被 Midjourney 等公司广泛应用,拥有庞大的开发者用户基础。收购后不仅能将 Bun 团队纳入麾下增强自身技术实力,还能借助 Bun 在 JS 生态中的影响力,进一步扩大 Claude Code 在开发者群体中的渗透率,完善自身 AI 编程生态。。

  4. 双方发展理念契合且能实现共赢

    双方均以提升开发者效率为目标,收购后 Bun 能获充足资源专注技术开发,Anthropic 也能借其技术放大 AI 产品增长势能,实现共赢。

设计目标

Bun 在设计之初就考虑到了当今的 JavaScript 生态系统。

  • 速度。Bun 进程的启动速度比 目前的 Node.js 快 4 倍

  • 支持 TypeScript 和 JSX。您可以直接运行 .jsx 、 .ts 和 .tsx 文件;Bun 内置的转换器会在执行前将这些文件转换为普通 JavaScript 代码。

  • 与 ESM 和 CommonJS 兼容。全球都在向 ES 模块(ESM)靠拢,但 npm 上仍有数百万软件包需要支持 CommonJS。Bun 推荐使用 ES 模块,但也支持 CommonJS。

  • Web 标准 API. Bun 实现了标准的 Web API,例如 fetch 、 WebSocket 和 ReadableStream 。Bun 底层使用的是 JavaScriptCore 引擎,该引擎由 Apple 为 Safari 开发,因此某些 API(例如 Headers 和 URL )直接使用了 Safari 的实现。

  • 兼容 Node.js。除了支持 Node 风格的模块解析外,Bun 还致力于实现与 Node.js 内置的 globals ( process , Buffer ) 和模块( path 、 fs 、 http 等)的完全兼容。 这一目标还未实现,仍在努力中。

Bun 不仅仅是一个运行时。Bun 的长期目标是成为使用 JavaScript/TypeScript 构建应用程序的一站式基础工具包,包括软件包管理器、转换器、打包器、脚本运行器、测试运行器等。

对比Node、Deno、Bun

特性维度Node.jsDenoBun

js引擎

V8

V8

JavaScriptCore

编写语言

C/C++

Rust

Zig

核心理念

稳定与生态:经过验证的行业标准

安全与现代:纠正Node设计,安全优先

性能与一体:极致速度,一体化工具链

性能特点

稳定成熟,性能中等

性能优秀,启动较快

启动与执行极快,HTTP吞吐量常领先

包管理与模块

npm + package.json ,生态庞大

原生ESM,支持URL导入和npm包

内置极速包管理器,高度兼容npm

内置工具链

较少,依赖第三方(如Webpack, Jest)

较丰富(测试、格式化等)

全面内置(打包、测试等),开箱即用

安全性

默认无限制,依赖生态最佳实践

默认安全沙箱,需显式授权

权限模型类似Node.js

TypeScript支持

需额外配置(ts-node等)

原生支持

原生支持(内部转换)

生产就绪度

最高,生态与社区极其成熟

高,适合对安全有要求的新项目

高速成长,兼容性好但更新快,生产需评估

学习成本

低,资料最多

中,需适应安全模型和新生态

低,对npm开发者友好,命令集成



all-in-one





Runtime 运行时

  1. 性能与引擎:Bun使用Apple Safari浏览器的JavaScriptCore (JSC) 引擎,而非Node.js的V8。底层使用Zig语言编写,能进行精细的低层次内存和并发控制。Bun是一个轻量级运行时,具有更小的内存占用、更快的启动时间,在 Linux 系统上启动速度比 Node.js快 4 倍。

  2. 开箱即用的开发体验:原生支持 .ts 、 .tsx 、 .jsx 文件,无需额外配置编译器。

  3. 现代且高效的API:提供了更简洁、高性能的原生API,例如:

    • 创建HTTP服务器只需使用 Bun.serve() ,性能优于原生Node.js http 模块。

    • 文件操作API( Bun.file() )比Node.js的 fs 模块更友好。

  4. 兼容性:设计为Node.js的直接替代品,实现了绝大多数Node.js API和npm模块,允许许多现有项目直接使用 bun 命令替换 node 命令运行。

Package Manager 包管理器

bun install 速度极快,旨在替代 npm 、 yarn 、 pnpm 。

在任何 Node.js 项目中从切换 npm install 到 bun install ,安装速度提升高达 25 倍。





Test Runner 测试运行器

Bun 内置了一个快速、兼容 Jest(未完全实现) 的测试运行器。测试在 Bun 运行时环境中执行,并支持以下功能。

  • TypeScript 和 JSX

  • 生命周期钩子

  • 快照测试

  • UI 和 DOM 测试

  • Watch模式 --watch

  • 脚本预加载 --preload





Bundler 打包器

Bun 是一款快速的原生打包工具,支持 JavaScript、TypeScript、JSX 等





为什么快

  1. 引擎差异:不同于 Node.js 和 Deno,Bun 并没有基于 V8 引擎,而是使用了 JavaScriptCore 引擎,JSC 启动速度更快,内存占用更低。这为 Bun 的快速冷启动和高效运行奠定了基础。
  2. 语言差异:Bun.js 使用的是新兴的系统编程语言 ZIG 编写的,主要通过手动内存管理对内存进行更细粒度的控制、无隐藏的控制流来提升程序的性能。
  3. 从零开始:在上两点的前提下, Bun.js 的大部分内容都是完全从零开始编写的,包括 JSX/TypeScript 转译器、 npm 客户端、打包器、 SQLite 客户端、 HTTP 客户端、 WebSocket 客户端等等。

兼容性

https://bun.com/docs/runtime/nodejs-compat

兼容的功能

兼容绝大多数场景,比如CommonJS和 ES模块系统 、核心模块(fs, path, http等)、npm生态系统中的大多数包、process全局对象、Buffer API、EventEmitter、大多数Node.js标准库API。

不完全兼容的功能

  1. 某些原生模块可能需要重新编译

  2. 一些依赖Node.js内部API的库可能不工作

  3. 某些流API的实现有差异

  4. 某些特定于Node.js的功能(如cluster模块)可能有不同行为

使用

下载

// macOS & Linux curl -fsSL https://bun.com/install | bash // Windows powershell -c "irm bun.sh/install.ps1|iex" // Package Managers npm install -g bun // Docker docker pull oven/bun docker run --rm --init --ulimit memlock=-1:-1 oven/bun 

检查Bun版本

bun --version # Output: 1.x.y # See the precise commit of `oven-sh/bun` that you're using bun --revision # Output: 1.x.y+b7982ac13189

升级

bun upgrade # Upgrade to latest canary bun upgrade --canary # Switch back to stable bun upgrade --stable

卸载

// macOS & Linux rm -rf ~/.bun // Windows powershell -c ~\.bun\uninstall.ps1 // Package Managers npm uninstall -g bun

开发

命令用途与示例关键说明官方文档

bun init

快速初始化新项目: bun init -y

快速生成 package.json 、 tsconfig.json 等文件。

https://bun.com/docs/runtime/templating/init

bun create

从模板创建项目: bun create react my-app

模板可来自官方、GitHub或本地目录,创建后通常会自动安装依赖。

https://bun.com/docs/runtime/templating/create

bun run

1. 运行JS/TS文件: bun run index.ts 2. 运行 package.json 中的脚本: bun run dev

运行时支持热重载:使用 --hot 标志(如 bun --hot index.ts )可在代码变更后自动重启。

https://bun.com/docs/runtime

bun test

运行项目测试: bun test

内置测试运行器,兼容Jest语法,启动速度极快。

bun build

打包项目代码: bun build ./src/index.ts --outdir ./dist --minify

内置原生打包器,支持tree shaking、压缩和多种输出目标。

包管理

命令用途与示例关键说明

bun install

安装所有依赖: bun install

速度极快。常用标志: --production (仅生产依赖)、 --frozen-lockfile (严格锁定版本)。

bun add

添加依赖: bun add react (生产依赖) bun add -d @types/node (开发依赖)

-d 或 --dev 标志表示开发依赖。

bun remove

移除依赖: bun remove lodash

-

bun update

更新依赖: bun update

可使用 --interactive 标志进行交互式更新。

bun pm

访问额外的包管理工具

包含缓存管理、链接管理等子命令。

bunx

执行npm包二进制命令(类似 npx ): bunx create-vite@latest

无需全局安装工具,避免污染环境。



优势与潜在考量

主要优势潜在考量 / 挑战

1. 极致的开发速度:安装、启动、构建、测试都快。

1. 生态系统相对年轻:社区规模和深度不如 Node.js,一些 npm 包可能未完全适配。

2. 一体化开发体验:减少工具链配置的复杂性和依赖项。

2. 兼容性风险:并非 100% 兼容所有 Node.js API 和原生模块,存在运行风险。

3. 现代且简单:开箱即用的 TS/JSX 支持,提供简洁的 Web 服务器 API。

3. 仍在快速迭代:新版本可能引入不兼容的变更。



版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 22:42:23

1小时搭建带Swagger文档的API原型系统

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个博客系统API原型,要求:1. 包含文章发布、评论功能 2. 自动生成完整的Swagger文档 3. 所有API路径清晰可测试 4. 支持Mock数据返回 5. 一键部署…

作者头像 李华
网站建设 2026/9/15 1:41:21

国产加固笔记本能够应对复杂使用环境吗?

很多时候,产品能不能胜任,并不是在参数表上看出来的,而是在一次次使用中慢慢体会到的。当笔记本频繁被带到现场、被反复插拔接口、被放进车里又拿出来时,使用需求就已经发生了变化。也是在这样的过程中,国产加固笔记本…

作者头像 李华
网站建设 2026/9/18 3:27:36

程序员必知:电源设置对开发效率的影响

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个面向程序员的电源模式智能切换工具。功能:1. 检测IDE和编译工具使用状态;2. 编码时自动切换高性能模式;3. 阅读文档时启用平衡模式&…

作者头像 李华
网站建设 2026/9/16 7:03:47

AI大模型:python汉字识别+数字识别+字母识别系统 百度API 检测识别系统 文档 基于 Python 与百度 API 的多类型字符识别与管理系统

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…

作者头像 李华
网站建设 2026/9/14 20:09:26

Cursor vs 传统IDE:开发效率对比实测

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个性能对比测试:1. 实现相同的算法(如快速排序)在Cursor和传统IDE中的开发过程 2. 记录每个步骤的时间消耗 3. 比较调试和重构的效率差…

作者头像 李华