菜单

概述

相关源文件

本文档提供了 Bun 仓库结构和架构的高层概述。Bun 是一个用于 JavaScript 和 TypeScript 应用程序的一体化工具包,它作为一个名为 bun 的单个可执行文件发布。有关各个子系统的具体实现细节,请参阅本 wiki 中相应的编号部分。

该仓库包含一个全面的 JavaScript 运行时,设计为 Node.js 的替代品,以及其他开发者工具,包括包管理器、打包器、测试运行器和转译器。所有核心组件均用 Zig 实现,并由 JavaScriptCore 引擎驱动。

仓库架构

Bun 仓库围绕几个主要子系统组织,这些子系统协同工作以提供完整的 JavaScript 开发工具包。

来源: README.md27-36 docs/nav.ts25-461

核心运行时系统

Bun的核心是其JavaScript运行时,围绕JavaScriptCore引擎构建,并带有自定义的Zig绑定和优化。

该运行时提供对 JavaScript、TypeScript 和 JSX 文件的直接执行,无需单独的编译步骤。有关详细的运行时行为,请参阅 核心 JavaScript 运行时

来源: README.md29 docs/index.md1-4 docs/runtime/index.md1-2

命令行界面系统

Bun 的 CLI 通过单个 bun 可执行文件提供所有开发任务的统一界面。

CLI 系统负责命令解析、环境设置和分发到相应的子系统。有关详细的 CLI 文档,请参阅 命令行界面

来源: README.md35-42 docs/nav.ts86-178 docs/cli/install.md1 docs/install/lockfile.md1 docs/runtime/bunfig.md201-449

包管理架构

Bun 包含一个与 Node.js 兼容的包管理器,专为速度和效率而设计。

包管理器支持 npm 注册表兼容性、git 依赖项以及工作区和自动安装等高级功能。有关完整的包管理详细信息,请参阅 包管理器

来源: docs/cli/install.md1-2 docs/install/lockfile.md1 docs/runtime/bunfig.md201-449

HTTP 服务器和网络

Bun 通过 Bun.serve API 提供高性能的 HTTP 和 WebSocket 服务器功能。

网络系统建立在 Web 标准之上,同时提供 Bun 特有的优化和功能。有关网络详细信息,请参阅 HTTP 服务器和网络

来源: docs/api/http.md9-54 README.md181-197 docs/runtime/bun-apis.md22-58

语言处理流水线

Bun 包含一个完整的 JavaScript/TypeScript 处理系统,用于转译和打包。

语言处理系统通过可配置的加载器和转换器处理 TypeScript、JSX 和各种文件格式。有关处理详细信息,请参阅 JavaScript 处理引擎

来源: docs/runtime/loaders.md1-13 docs/runtime/index.md14-25 docs/bundler/index.md

API 表面组织

Bun 通过多个 API 层公开功能,以实现不同的兼容性和用例。

API 表面提供了多层兼容性,同时保持了性能和现代标准合规性。有关 API 详细信息,请参阅 JavaScript API 表面

来源: docs/runtime/bun-apis.md1-4 docs/runtime/web-apis.md1-3 docs/runtime/nodejs-apis.md

构建系统和依赖项

Bun 的构建系统协调了 Zig 源代码的编译以及外部依赖项的集成。

构建系统负责跨平台编译,并管理复杂的依赖关系以生成最终的 bun 可执行文件。有关构建系统详细信息,请参阅 构建系统和基础设施

来源: docs/installation.md1 README.md44-69 docs/project/building-windows.md