编程 Bun 加入 Anthropic:AI 编程时代基础设施变革的深度解析(2026)

2026-07-04 09:43:41 +0800 CST views 9

Bun 加入 Anthropic:AI 编程时代基础设施变革的深度解析(2026)

2025 年 12 月,Jarred Sumner 在一篇博客中宣布 Bun 被 Anthropic 收购。这个消息在技术社区激起的涟漪远超一个普通并购——它标志着 AI 编程工具的基础设施层正在发生根本性重组。本文从技术视角出发,深入解析这起收购背后的逻辑、对 JavaScript/TypeScript 生态的影响,以及它对每一个一线开发者意味着什么。

一、故事的起点:45 秒的等待

要理解这起收购,先要理解 Bun 是怎么来的。

2020 年,Jarred Sumner 正在用 Next.js 做一个小游戏。代码库变大之后,每次修改代码,等待热重载的时间是——45 秒。他被这个速度折磨得实在受不了,于是开始研究解决方案。

他发现 esbuild 在 JSX 和 TypeScript 转译上已经很快了,但 Next.js 的开发服务器依然慢得令人发指。他决定从 esbuild 的 Go 代码入手,把 JSX/TypeScript 转译器移植到 Zig。三个星期后,一个实验性质的转译器诞生了。

第一条推文发出去的时候,性能对比是这样的:

  • 比 esbuild 快 3 倍
  • 比 swc 快 94 倍
  • 比 Babel 快 197 倍

这组数字让整个前端社区炸开了锅。那时候,Babel 是转译 TypeScript 的事实标准,swc 已经是最快的方案了,而 Bun 的性能直接把竞争格局重新洗牌。

Jarred 在旧金山奥克兰一间很小的公寓里,开始了 Bun 的正式开发。没有融资,没有团队,只有一行行 Zig 代码和推特上每天的更新。

二、Bun 是什么:一个 ALL-IN-ONE 工具链

2.1 从 bundler 到 runtime

Bun 最初定位是一个 JavaScript bundler,目标是用 Zig 写的转译器替代 Babel。真正的转折点是:既然要做 bundler,干脆把 Node.js 的服务器端运行时也做了。

这就是 Bun 最核心的思路:不做加法,做减法。把原来需要 npm install 一堆包才能跑起来的东西,变成开箱即用。

现在的 Bun 包含四个核心组件:

┌─────────────────────────────────────────────────────────┐
│                      BUN                                 │
├─────────────┬─────────────┬─────────────┬───────────────┤
│  Runtime    │  Bundler    │  Package    │  Test Runner  │
│  (JavaScript │  (TypeScript │  Manager    │  (Jest兼容)   │
│   运行时)    │   打包器)    │  (npm替代)  │               │
└─────────────┴─────────────┴─────────────┴───────────────┘

2.2 Node.js 兼容层:不是兼容,是替换

Bun 对 Node.js API 的兼容不是简单包装,而是一整套重新实现。

// 这段代码在 Node.js 和 Bun 里都能跑,但底层实现完全不同

// Bun 的内置 SQL 支持(不需要安装额外包)
import { Database } from "bun:sqlite";

const db = new Database(":memory:");
db.run("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)");

const stmt = db.prepare("INSERT INTO users (name) VALUES (?)");
stmt.run("Alice");
stmt.run("Bob");

const result = db.query("SELECT * FROM users").all();
console.log(result);
// [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }]
// Bun 的内置 HTTP 服务器(无需 Express)
const server = Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("Hello from Bun!");
  },
});

console.log(`Server running at http://localhost:${server.port}`);
// Bun 的内置 WebSocket
const server = Bun.serve({
  port: 3001,
  fetch(req, server) {
    // 升级到 WebSocket
    const success = server.upgrade(req);
    if (success) return undefined;
    return new Response("WebSocket only", { status: 426 });
  },
  websocket: {
    message(ws, message) {
      ws.send(`Echo: ${message}`);
    },
  },
});

一个不依赖任何 npm 包的 HTTP 服务器就这样跑起来了。这不是 demo,这是生产可用的实现——Bun 的 HTTP 服务器在 TechEmpower benchmarks 上的表现直接和 Go 的 fasthttp 掰手腕。

2.3 Bun install:比 npm 快 30 倍的秘密

npm install 慢的原因是:npm 的依赖解析算法是递归的,每个包都要单独请求 registry。Bun 的方案是:

# Bun install
bun install

# 背后的机制:
# 1. 并行下载所有顶层依赖
# 2. 共享全局缓存(~/.bun/install/cache)
# 3. 扁平化 node_modules(消除 phantom dependency 问题)
# 4. 使用裸模块导入(import "lodash" 而不是 import "./node_modules/lodash")

isolated linker 是 Bun v1.3.14 引入的新技术,它使用全局 store 来存储模块信息,同一依赖只需要解析一次。在冷安装场景下,性能提升还不明显;在 warm install 场景下(依赖已经存在于缓存),速度提升达到了 7 倍。

三、AI 编程工具的爆发:基础设施终于跟上了

3.1 从"酷炫演示"到"真的有用"

2024 年底,AI 编程工具完成了从 demo 到实用工具的跨越。Cursor、Claude Code、GitHub Copilot、FactoryAI、OpenCode……这些工具有一个共同特点:它们需要高频调用代码补全和生成 API,每次调用的启动开销直接决定了用户体验。

而 Claude Code 选择了 Bun。

# Claude Code 的安装
curl -fsSL https:// claude.ai/download | sh

# 实际上背后跑的就是一个 Bun 打包的单文件可执行文件

3.2 为什么 AI 编程工具钟爱 Bun

AI 编程工具对运行环境的要求,和传统 Web 开发完全不同:

维度传统 Web 开发AI 编程工具
启动速度秒级可接受毫秒级(每次补全都要快)
内存占用越大越好(缓存)越小越好(并发运行多个 agent)
分发方式npm 包 + CI/CD单文件可执行文件
启动频率每天几次每分钟几十次

Bun 的单文件打包能力(bun build --target=bun ./cli.ts --outfile=mytool)完美契合 AI 工具的分发需求。一条命令,把 TypeScript 代码打包成 Linux/macOS/Windows 全平台的原生可执行文件——不需要用户先安装 Node.js,不需要 npm install,开箱即用。

Jarred Sumner 在博客里提到过一个细节:在收购谈判期间,他已经在用 Claude Code 帮自己修 Bun 的 bug 了。GitHub 上 Bun 仓库合并 PR 数量最多的用户名,是一个 Claude Code bot。它在 Discord 里接受任务,开 PR、修 bug、回复 review comment——完整地走完了 code review 流程。

"这不是几年后才会发生的事,这是几个月后就会发生的事。"

四、被收购意味着什么

4.1 什么不变

这是最重要的问题——开发者最担心的就是:一个开源项目被大厂收购后,慢慢变成不维护的僵尸项目。

Bun 官方的承诺:

  • 保持 MIT 开源许可:任何人可以 fork、修改、分发
  • 继续在 GitHub 公开开发:代码提交历史不会消失
  • 团队不变:Oven 团队原班人马继续开发
  • 路线图不变:依然聚焦高性能 JS 工具链、Node.js 兼容、替代 Node.js 成为默认服务端运行时

Bun 每月下载量已经突破 720 万次。被收购不是因为活不下去了,而是因为在 AI 编程这个大方向上,找到了一个能加速的路径。

4.2 什么会变

// Bun 在收购后透露的路线图重点:

// 1. Claude Code 团队优先事项会被优先处理
//    (已经有数月的"优先处理"历史了)

// 2. Claude Code 使用 Bun 作为 runtime → 
//    Bun 断裂 = Claude Code 断裂
//    Anthropic 有直接的经济动机保证 Bun 的质量

// 3. Claude Agent SDK 的基础设施层也将由 Bun 提供
//    这意味着未来更多的 Agent 工具会基于 Bun 构建

4.3 AI 编程时代的基础设施军备竞赛

从更大的视角看,Bun 加入 Anthropic 其实是 AI 基础设施军备竞赛的一个缩影:

传统模式:
  Claude Code ──需要──> Bun/Node.js ──需要──> OS

AI Agent 模式:
  Claude ──需要──> Agent SDK ──需要──> Bun ──需要──> OS
  
  Anthropic 的逻辑:
  ┌──────────────────────────────────────────┐
  │  控制 Claude Code 的底层 runtime          │
  │  → 优化每次 AI 调用的端到端延迟             │
  │  → 用户体验提升 → 市场份额提升             │
  └──────────────────────────────────────────┘
  
  Bun 的逻辑:
  ┌──────────────────────────────────────────┐
  │  Anthropic 的资源注入 → 更快的版本发布     │
  │  Claude Code 的需求 → 更稳定的运行时       │
  │  720万月下载量 → 更广泛的生态影响力         │
  └──────────────────────────────────────────┘

这不是简单的"大厂收购创业公司",而是 AI 公司在垂直整合基础设施层的早期尝试。可以类比的是:OpenAI 投资基础设施公司、Anthropic 收购 Bun,未来可能还会有更多类似的动作。

五、Bun v1.3.x 核心技术解析

5.1 HTTP/2 和 HTTP/3 实验性支持

Bun v1.3.14 引入了实验性的 HTTP/2 和 HTTP/3 支持,这是 Bun 向生产级服务端运行时迈进的重要一步。

// Bun HTTP/3 服务器
const server = Bun.serve({
  port: 8443,
  tls: {
    key: await Deno.readTextFile("./key.pem"),
    cert: await Deno.readTextFile("./cert.pem"),
  },
  http: {
    // 启用 HTTP/3 (QUIC)
    version: "h3",
  },
  fetch(req) {
    return new Response("Hello over HTTP/3!");
  },
});

HTTP/3 基于 QUIC 协议(UDP),在丢包环境下比 TCP 快得多。对于 AI 工具来说,频繁的小请求+响应场景(typing → 补全 → typing → 补全)非常适合 QUIC 的流控机制。

5.2 Bun.cron:内置任务调度器

// Bun v1.3.11+ 内置的 cron 调度器
Bun.cron({
  schedule: "0 * * * *", // 每小时执行一次
  timezone: "Asia/Shanghai",
  async task() {
    // 定时任务逻辑
    console.log("每小时定时任务执行中...");
    await sendHeartbeat();
  },
});

不再需要 node-cron、bull 或其他调度库了。Bun 从操作系统层面直接解析 cron 表达式,精度和性能都比 JavaScript 实现好得多。

5.3 Bun.Image:内置图像处理 API

// Bun v1.3.14 引入的内置图像处理
import { Image } from "bun";

// 图像处理不需要安装 sharp 或 jimp
const img = await Image.load("./photo.jpg");
const resized = await img.resize({
  width: 800,
  height: 600,
  fit: "cover",
});

await Bun.write("./photo-resized.jpg", resized);

7 倍于 ImageMagick 的性能,背后是 Bun 用 Zig 实现的原生图像处理管线。

5.4 Bun.WebView:无头浏览器自动化

// Bun v1.3.12 引入的 WebView 自动化
import { WebView } from "bun";

const webview = new WebView("https://example.com", {
  width: 1280,
  height: 720,
});

// 等待页面加载
await webview.waitForLoad();

// 执行 JavaScript
const title = await webview.evaluate(() => document.title);

// 截图
await webview.screenshot({ path: "./screenshot.png" });

webview.close();

不再需要 Puppeteer 或 Playwright。Bun 原生支持 WebView,可以做简单的网页自动化和爬虫。

5.5 Bun.serve 的内部架构

Bun 的 HTTP 服务器之所以快,是因为它从零开始重新设计了网络栈:

Bun.serve() 内部架构
├── JavaScript 引擎:JavaScriptCore (WebKit)
│   └── 比 V8 启动快 4 倍(对 CLI 工具特别重要)
├── 网络 I/O:LibUV 异步 I/O(复用 Node.js 的成熟方案)
├── HTTP 解析:Zig 原生实现(比 Node.js 的 C++ http-parser 快)
├── TLS:Rustls(内存安全、高性能的 TLS 实现)
└── WebSocket:Zig 原生实现(handshake + 帧解析一体化)

JavaScriptCore 的选择是 Bun 和 Node.js、Deno 最大的架构差异。JSC 的启动时间远快于 V8,这是因为 WebKit 对 Safari 的 CLI 工具有大量优化——而 Bun 继承了这部分优势。对于 AI 编程工具来说,这个选择是正确的:每次补全都涉及到 runtime 的冷启动,毫秒级的差异累积起来就是用户体验的天壤之别。

六、AI 时代开发者应该如何看待这起收购

6.1 从"学什么工具"到"理解什么系统"

这起收购背后有一个更重要的趋势:AI 编程工具正在从"帮你写代码"进化到"帮你维护系统"。

当 Claude Code bot 可以在 Bun 仓库里开 PR、修 bug、回复 review 的时候,传统的"程序员写代码 → 提交 PR → 人类 review"的工作流正在发生位移。人类 review 的作用从"检查代码正确性"变成了"把控技术方向"。

这对开发者意味着:

  1. 工具链的学习优先级变了:花一周学一个新框架,不如花一周理解分布式系统或编译原理
  2. 基础设施的价值在重估:runtime、bundler、编译器这些底层组件的价值被重新发现
  3. AI 原生开发模式正在形成:从"写代码"到"描述系统行为",开发者的核心能力正在迁移

6.2 Bun 的路线图预测

基于 Anthropic 的战略方向和 Bun 团队的历史执行力,我对未来 12-18 个月的 Bun 路线图做以下预测:

方向预测依据
AI 推理集成Bun 内置 AI 模型调用能力(类似 AWS Bedrock 接口)Anthropic 的核心业务
CLI 工具优化更小的可执行文件体积(compression + tree-shaking)Claude Code 分发需求
WASM 支持第一方 WebAssembly 运行时支持补全 Bun 的多端部署能力
数据库连接池更智能的内置连接池管理高并发 AI 工具场景
热更新更细粒度的运行时热更新AI 工具的持续运行场景

6.3 给开发者的行动建议

短期(现在):

  • 如果你在构建 CLI 工具或 AI 辅助工具,立即试用 bun build --compile
  • bun install 作为项目依赖安装的默认工具,npm 作为 fallback
  • 关注 Bun 的 Changelog,了解它和 Node.js API 兼容性的边界

中期(6-12 个月):

  • 如果你在评估新的服务端技术栈,把 Bun 列入候选(特别是轻量级微服务和边缘计算场景)
  • 关注 Claude Agent SDK 的进展,它会反映 Anthropic + Bun 的协同方向
  • 考虑在 monorepo 中引入 Bun Workspace,减少 npm/yarn 的维护负担

长期(1-2 年):

  • 理解 AI 编程工具的"最后一公里"问题:AI 生成代码的运行时行为验证
  • Bun + AI Agent SDK 的组合可能会催生新一代的开发工具链
  • 持续关注 Bytecode Alliance(WASM 组件模型)的进展——这是 WebAssembly 在 AI 时代的关键战场

七、结语:基础设施的重新发现

五年前,一个叫 Jarred 的开发者在旧金山的小公寓里,因为受不了 45 秒的热重载,开始写一个 TypeScript 转译器。他大概没想到,这个"分心的副产品"会在五年后成为 AI 编程时代最关键的基础设施组件之一。

Bun 加入 Anthropic 的故事,本质上是一个技术产品找到了最适合它的生态位:不是通过优化 Node.js,而是通过重新定义 JavaScript 工具链的边界,在 AI 编程这个新场景里找到了不可替代的价值。

对于开发者来说,这个故事有一个清晰的寓意:在工具爆炸的时代,理解底层原理比学会具体工具更重要。 Bun 能做 bundler、runtime、package manager,不是因为它什么都想做,而是因为它在每一层都找到了更优雅的实现方式。这种从底层重新思考问题的能力,是 AI 无法替代的。

未来已来,只是分布不均。基础设施层的军备竞赛才刚刚开始。


本文基于 Bun v1.3.14 及 Bun 官方博客 "Bun is joining Anthropic" 撰写。

推荐文章

nuxt.js服务端渲染框架
2024-11-17 18:20:42 +0800 CST
PHP来做一个短网址(短链接)服务
2024-11-17 22:18:37 +0800 CST
Dropzone.js实现文件拖放上传功能
2024-11-18 18:28:02 +0800 CST
gin整合go-assets进行打包模版文件
2024-11-18 09:48:51 +0800 CST
Vue3中如何进行异步组件的加载?
2024-11-17 04:29:53 +0800 CST
Elasticsearch 条件查询
2024-11-19 06:50:24 +0800 CST
程序员茄子在线接单