Bun API 入门指南 - Apidog
文章目录
最近,Bun 作为一款速度极快、功能强大的 JavaScript 工具包,吸引了众多开发者的关注。Bun 不仅仅是一个运行时,它还整合了打包工具、测试运行器、包管理器等功能,旨在提升开发效率和应用性能。本文将为您详细介绍 Bun 的核心概念及其强大的 API。
什么是 Bun?
Bun 是基于高性能 JavaScriptCore(JSC)引擎构建的运行时,与 Node.js 使用的 V8 引擎不同。Bun 的实现基于 Zig 编程语言,这使得它在启动速度和运行效率上表现出色,启动时间通常比 Node.js 快 4 倍甚至更多。此外,Bun 对 API 的内部实现进行了深度优化,以实现更高的吞吐量和更低的内存占用。
Bun 的目标不仅是提供更快的运行时,还旨在通过以下功能满足开发者的常见需求:
-
集成工具:
Bun 提供了多个命令,例如
bun run用于执行脚本,bun install用于依赖管理,bun test用于运行测试,bun build用于打包代码,bunx则可以直接运行未安装的包。这些工具的整合简化了开发流程。 -
原生 TypeScript 和 JSX 支持:
Bun 内置了高效的转译器,支持
.ts、.tsx和.jsx文件的直接运行,无需额外配置编译器。 -
遵循 Web 标准 API:
Bun 内置了诸如
fetch、Request、Response、Headers和流 API(如ReadableStream、WritableStream)等标准 API,确保代码在不同环境中的可移植性。 -
Node.js 兼容性:
Bun 兼容许多 Node.js 内置模块(如
fs、path、os等)和全局对象(如process、Buffer等),使得现有的 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.version和Bun.revision: 获取当前 Bun 的版本号和构建信息。
这些 API 进一步提升了开发效率。
Bun 的 Web 标准 API 支持
Bun 对 Web 标准 API 的支持非常全面,包括但不限于:
- 网络请求:
fetch、Request、Response。 - 流处理:
ReadableStream、WritableStream。 - URL 操作:
URL、URLSearchParams。 - 编码:
TextEncoder、TextDecoder。 - 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/
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)