README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Bun
阅读文档 →
什么是 Bun?
Bun 是一款专为 JavaScript 和 TypeScript 应用打造的一体化工具包。它以名为 bun 的单个可执行文件形式提供。
其核心是 Bun 运行时,这是一种快速的 JavaScript 运行时,旨在作为 Node.js 的直接替代品。它由 Rust 编写,底层基于 JavaScriptCore,从而大幅降低了启动时间和内存占用。
bun run index.tsx # TS and JSX supported out-of-the-box
bun 命令行工具还集成了测试运行器、脚本运行器以及兼容 Node.js 的包管理器。在开发过程中,您无需使用 1,000 个 node_modules,只需 bun 个即可。Bun 自带的工具比现有的同类工具快得多,且几乎无需修改即可用于现有的 Node.js 项目中。
bun test # run tests
bun run start # run the `start` script in `package.json`
bun install <pkg> # install a package
bunx cowsay 'Hello, world!' # execute a package
安装
Bun 支持 Linux(x64 及 arm64)、macOS(x64 及 Apple Silicon)以及 Windows(x64 及 arm64)系统。
Linux 用户 — 强烈建议使用内核版本 5.6 或更高版本,最低要求为 5.1。
x64 用户 — 如果出现“非法指令”或类似错误,请查看我们的 CPU 要求
# with install script (recommended)
curl -fsSL https://bun.com/install | bash
# on windows
powershell -c "irm bun.sh/install.ps1 | iex"
# with npm
npm install -g bun
# with Homebrew
brew tap oven-sh/bun
brew install bun
# with Docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
升级
要升级到最新版本的 Bun,请运行:
bun upgrade
每当向 main 提交代码时,Bun 会自动发布一个测试版构建版本。要升级到最新的测试版构建,請运行:
bun upgrade --canary
快速链接
-
简介
-
模板功能
-
运行时相关
-
包管理器
-
打包工具
-
测试运行器
-
包执行器
-
API
- HTTP 服务器 (
Bun.serve) - HTTP 路由
- HTTP 错误处理
- HTTP 指标统计
- WebSockets
- 工作进程
- 二进制数据
- 流
- 文件 I/O (
Bun.file) - 归档 (tar)
- SQLite (
bun:sqlite) - PostgreSQL (
Bun.sql) - Redis (
Bun.redis) - S3 客户端 (
Bun.s3) - 文件系统路由器
- TCP 套接字
- UDP 套接字
- 全局变量
- 子进程 (spawn)
- Cron 定时任务 (
Bun.cron) - WebView
- 转译器 (
Bun.Transpiler) - 哈希处理
- 颜色处理 (
Bun.color) - 控制台
- FFI (
bun:ffi) - C 编译器 (
bun:fficc) - HTML 重写器
- Cookie
Bun.Cookie) - CSRF 防护 (
Bun.CSRF) - 机密信息处理 (
Bun.secrets) - YAML 格式
Bun.YAML) - TOML 格式
Bun.TOML) - JSON5
- JSONL
- Markdown
- 图像处理
- 实用工具
- Node-API
- Glob 模式 (
Bun.Glob) - Semver 版本规范 (
Bun.semver) - DNS 解析
- fetch API 扩展功能
- HTTP 服务器 (
指南
-
部署
-
Binary
- 将 Blob 转换为字符串
- 将 Buffer 转换为 Blob
- 将 Blob 转换为 DataView
- 将 Buffer 转换为字符串
- 将 Blob 转换为 ReadableStream
- 将 Blob 转换为 Uint8Array
- 将 DataView 转换为字符串
- 将 Uint8Array 转换为 Blob
- 将 Blob 转换为 ArrayBuffer
- 将 ArrayBuffer 转换为 Blob
- 将 Buffer 转换为 Uint8Array
- 将 Uint8Array 转换为 Buffer
- 将 Uint8Array 转换为字符串
- 将 Buffer 转换为 ArrayBuffer
- 将 ArrayBuffer 转换为 Buffer
- 将 ArrayBuffer 转换为字符串
- 将 Uint8Array 转换为 DataView
- 将 Buffer 转换为 ReadableStream
- 将 Uint8Array 转换为 ArrayBuffer
- 将 ArrayBuffer 转换为 Uint8Array
- 将 ArrayBuffer 转换为数字数组
- 将 Uint8Array 转换为 ReadableStream
-
Ecosystem
- 使用 React 和 JSX
- 在 Bun 中使用 Gel
- 在 Bun 中使用 Prisma
- 在 Bun 中使用 Prisma Postgres
- 在 Bun 应用中添加 Sentry
- 创建一个 Discord 机器人
- 使用 PM2 将 Bun 作为守护进程运行
- 在 Bun 中使用 Drizzle ORM
- 在 Bun 中使用 Upstash Redis
- 使用 Nuxt 和 Bun 构建应用
- 使用 Qwik 和 Bun 构建应用
- 使用 Astro 和 Bun 构建应用
- 使用 Remix 和 Bun 构建应用
- 使用 Vite 和 Bun 构建前端
- 使用 Next.js 和 Bun 构建应用
- 使用 systemd 将 Bun 作为守护进程运行
- 使用 Hono 和 Bun 构建 HTTP 服务器
- 使用 SvelteKit 和 Bun 构建应用
- 使用 SolidStart 和 Bun 构建应用
- 使用 TanStack Start 和 Bun 构建应用
- 使用 Elysia 和 Bun 构建 HTTP 服务器
- 使用 StricJS 和 Bun 构建 HTTP 服务器
- 使用 Docker 将 Bun 应用容器化
- 使用 Express 和 Bun 构建 HTTP 服务器
- 通过 Drizzle ORM 使用 Neon Postgres
- 对 React 组件进行服务器端渲染 (SSR)
- 使用 Mongoose 和 Bun 读写 MongoDB 数据
- 在 Bun 中使用 Neon 的 Serverless Postgres
-
HTMLRewriter
-
HTTP
-
安装
- 添加依赖项
- 添加 Git 依赖项
- 添加同级依赖项
- 添加受信任的依赖项
- 添加开发依赖项
- 添加 tarball 形式的依赖项
- 添加可选依赖项
- 生成兼容 yarn 的锁文件
- 使用 workspaces 配置单仓库项目
- 以不同名称安装包
- 在 GitHub Actions 中使用 Bun 安装依赖项
- 在 Artifactory 中使用 bun install 命令
- 配置 git 以对比 Bun 的 lockfile 文件
- 为 bun install 覆盖默认的 npm 仓库
- 在 Azure Artifacts npm 仓库中使用 bun install 命令
- 从 npm install 迁移为 bun install
- 使用 bun install 为组织范围配置私有仓库
-
进程处理
-
读取文件
-
运行时
-
流
- 将 ReadableStream 转换为 JSON
- 将 ReadableStream 转换为 Blob
- 将 ReadableStream 转换为 Buffer
- 将 ReadableStream 转换为字符串
- 将 ReadableStream 转换为 Uint8Array
- 将 ReadableStream 转换为数据块数组
- 将 Node.js Readable 对象转换为 JSON
- 将 ReadableStream 转换为 ArrayBuffer
- 将 Node.js Readable 对象转换为 Blob
- 将 Node.js Readable 对象转换为字符串
- 将 Node.js Readable 对象转换为 Uint8Array
- 将 Node.js Readable 对象转换为 ArrayBuffer
-
测试
- 在
bun test中监视方法 - 使用 Bun 测试运行器提前终止测试
- 在
bun test中模拟函数 - 使用 Bun 在监视模式下运行测试
- 在
bun test中使用快照测试 - 使用 Bun 测试运行器跳过测试
- [在 Bun 中使用 Testing Library
- 在
bun test中更新快照 - 使用 Bun 测试运行器运行测试
- 在 Bun 的测试运行器中设置系统时间
- 使用 Bun 测试运行器为单个测试设置超时时间
- 从 Jest 迁移到 Bun 的测试运行器
- 使用 Bun 和 happy-dom 编写浏览器 DOM 测试
- 使用 Bun 测试运行器将测试标记为“待办”
- 使用 Bun 测试运行器多次重新运行测试
- 使用 Bun 测试运行器生成代码覆盖率报告
- 使用 bun test 导入、加载并测试 Svelte 组件
- 使用 Bun 测试运行器设置代码覆盖率阈值
- 使用通配符模式选择性地并发运行测试
- 在
-
Util
-
WebSocket
-
写入文件
贡献代码
请参考 Project > Contributing 指南,开始为 Bun 贡献代码。
许可证
有关 Bun 许可证的详细信息,请查看 Project > License 页面。