Bun API 入门指南 - Apidog

作者:API传播员 · 2025-11-11 · 阅读时间:7分钟

最近,Bun 作为一款速度极快、功能强大的 JavaScript 工具包,吸引了众多开发者的关注。Bun 不仅仅是一个运行时,它还整合了打包工具、测试运行器、包管理器等功能,旨在提升开发效率和应用性能。本文将为您详细介绍 Bun 的核心概念及其强大的 API


什么是 Bun?

Bun 是基于高性能 JavaScriptCore(JSC)引擎构建的运行时,与 Node.js 使用的 V8 引擎不同。Bun 的实现基于 Zig 编程语言,这使得它在启动速度和运行效率上表现出色,启动时间通常比 Node.js 快 4 倍甚至更多。此外,Bun 对 API 的内部实现进行了深度优化,以实现更高的吞吐量和更低的内存占用。

Bun 的目标不仅是提供更快的运行时,还旨在通过以下功能满足开发者的常见需求:

  1. 集成工具:

    Bun 提供了多个命令,例如 bun run 用于执行脚本,bun install 用于依赖管理,bun test 用于运行测试,bun build 用于打包代码,bunx 则可以直接运行未安装的包。这些工具的整合简化了开发流程

  2. 原生 TypeScript 和 JSX 支持:

    Bun 内置了高效的转译器,支持 .ts.tsx.jsx 文件的直接运行,无需额外配置编译器。

  3. 遵循 Web 标准 API:

    Bun 内置了诸如 fetchRequestResponseHeaders 和流 API(如 ReadableStreamWritableStream)等标准 API,确保代码在不同环境中的可移植性。

  4. Node.js 兼容性:

    Bun 兼容许多 Node.js 内置模块(如 fspathos 等)和全局对象(如 processBuffer 等),使得现有的 Node.js 项目可以轻松迁移到 Bun。

通过这些特性,Bun 为 JavaScript 和 TypeScript 开发者提供了一个高效、现代化的开发环境。


如何安装 Bun

Bun 的安装过程非常简单,支持 macOS、Linux 和 Windows 子系统(WSL)。以下是几种常见的安装方法:

使用 curl 安装

在终端中运行以下命令即可快速安装 Bun:

curl -fsSL https://bun.sh/install | bash

该脚本会自动检测操作系统并下载相应的 Bun 可执行文件,同时将其安装到 ~/.bun/bin 目录中,并更新系统的 PATH 环境变量。

如果不希望直接运行脚本,可以先下载后检查:

curl -fsSL https://bun.sh/install -o install.sh
bash install.sh

其他安装方法

  • NPM 安装:

    如果您已经有 Node.js 环境,可以通过 NPM 安装 Bun:

  npm install -g bun
  • Docker 镜像:

    使用官方 Docker 镜像运行 Bun:

  docker run --rm --init --ulimit memlock=-1:-1 oven/bun:latest bun --version
  • Homebrew(macOS):

    在 macOS 上,您可以通过 Homebrew 安装:

  brew tap oven-sh/bun
  brew install bun

验证安装

安装完成后,运行以下命令检查版本号以验证安装是否成功:

bun --version

第一次运行 Bun

让我们使用 Bun 创建一个简单的 HTTP 服务器。以下是一个示例代码:

// server.ts
const server = Bun.serve({
  port: 3000,
  fetch(request) {
    return new Response("欢迎使用 Bun!");
  },
});

console.log(服务器正在监听 http://localhost:${server.port});

保存文件后,在终端中运行以下命令启动服务器:

bun run server.ts

打开浏览器访问 http://localhost:3000,您将看到页面显示“欢迎使用 Bun!”。按下 Ctrl+C 可以停止服务器。


Bun 的原生 TypeScript 支持

Bun 对 TypeScript 提供了开箱即用的支持,无需额外配置。与传统的 tsc 编译器不同,Bun 的转译器在运行时实时将 TypeScript 转换为 JavaScript,从而省去了单独的构建步骤。

以下是一个简单的 TypeScript 示例:

// greet.ts
interface User {
  name: string;
  id: number;
}

function greetUser(user: User): void {
  console.log(你好,${user.name}(ID: ${user.id})!);
}const myUser: User = { name: "Bun 开发者", id: 123 };
greetUser(myUser);

运行以下命令即可直接执行:

bun run greet.ts

Bun 会自动处理 TypeScript 转译,并输出结果。


Bun 的特定 API

除了兼容 Web 标准和 Node.js,Bun 还提供了一些独特的 API,例如:

  • Bun.file(path) 延迟读取文件内容,支持多种格式(如 .text().json() 等)。
  • Bun.build(config) 直接调用内置的打包工具。
  • Bun.versionBun.revision 获取当前 Bun 的版本号和构建信息。

这些 API 进一步提升了开发效率。


Bun 的 Web 标准 API 支持

Bun 对 Web 标准 API 的支持非常全面,包括但不限于:

  • 网络请求: fetchRequestResponse
  • 流处理: ReadableStreamWritableStream
  • URL 操作: URLURLSearchParams
  • 编码: TextEncoderTextDecoder
  • WebSocket: 支持客户端和服务器端的 WebSocket。

这些标准化的接口使得开发者可以轻松构建跨平台的应用程序。


使用 Bun 创建 HTTP 服务器

Bun 提供了 Bun.serve API,用于快速创建高性能的 HTTP 服务器。以下是一个示例:

const server = Bun.serve({
  port: 8080,
  fetch(req) {
    const url = new URL(req.url);
    if (url.pathname === "/") {
      return new Response("主页");
    } else if (url.pathname === "/about") {
      return new Response("关于我们");
    } else {
      return new Response("页面未找到", { status: 404 });
    }
  },
});

console.log(服务器正在监听 http://localhost:${server.port});

Bun 的 WebSocket 支持

Bun 内置了对 WebSocket 的支持,既可以用作客户端,也可以用作服务器端。以下是一个简单的 WebSocket 服务器示例:

const server = Bun.serve({
  port: 8081,
  websocket: {
    open(ws) {
      console.log("WebSocket 连接已建立");
      ws.send("欢迎使用 Bun WebSocket 服务器!");
    },
    message(ws, message) {
      console.log(收到消息:${message});
      ws.send(您发送了:${message});
    },
    close(ws) {
      console.log("WebSocket 连接已关闭");
    },
  },
});

console.log(WebSocket 服务器正在监听 ws://localhost:${server.port});

通过本文,您已经了解了 Bun 的核心功能及其强大的 API。无论是构建高性能的服务器,还是快速开发 TypeScript 项目,Bun 都提供了一个现代化的解决方案。如果您正在寻找一个高效的 JavaScript 工具包,不妨试试 Bun!

原文链接: https://apidog.com/blog/bun-api/