Repolode
boa-dev

boa-dev/boa

用 Rust 编写、可嵌入的 JavaScript 引擎,包含词法分析、语法解析与解释器。

Star
7,661
Fork
689
未关闭 Issue
223
最近提交
7天前

这是什么?

Boa 是一个用 Rust 编写的 JavaScript 词法分析器、解析器和解释器,目标是覆盖最新 ECMAScript 规范的 90% 以上,并通过 Test262 测试套件持续跟踪兼容性。

项目以一组 Rust crate 的形式发布。核心的 boa_engine 允许 Rust 应用创建执行上下文并直接执行 JavaScript 代码。其他 crate 分别提供 AST、解析器、垃圾回收器、字符串驻留以及类似 WebAPI 的运行时功能。此外,项目还提供命令行工具和 REPL,可在终端运行 JS 文件。

Boa 支持编译为 WebAssembly,并提供在线的浏览器 Playground。在 wasm32-unknown-unknown 目标下需要开启 js 特性并配置 getrandom 后端。

核心功能

  • 01用 Rust 实现的 JavaScript 词法分析、解析与解释执行。
  • 02目标覆盖最新 ECMAScript 规范的 90% 以上。
  • 03通过 boa_engine crate 嵌入到 Rust 应用中,提供简洁的求值接口。
  • 04自带命令行与 REPL,支持导出 AST 和优化器相关选项。
  • 05可编译为 WebAssembly,并提供浏览器在线 Playground。

适用场景

  • 在 Rust 应用中内嵌 JavaScript 执行能力,无需依赖 C++ 引擎。
  • 在 Rust 宿主中求值用户提供的脚本或表达式。
  • 学习或研究 JavaScript 语言实现与引擎内部机制。
  • 在 WebAssembly 环境中运行 JavaScript。

快速上手

  1. 1

    在 Cargo.toml 中添加 boa_engine 依赖

    cargo add boa_engine
  2. 2

    将示例代码复制到 main.rs

  3. 3

    运行项目

    cargo run

使用前须知

  • 作者称其为实验性项目,可能暂不适合生产环境。
  • 尚未完全符合 ECMAScript 规范,官方称支持率超过 90%。

标签

常见问题

boa 是什么?
用 Rust 编写、可嵌入的 JavaScript 引擎,包含词法分析、语法解析与解释器。 Boa 是一个用 Rust 编写的 JavaScript 词法分析器、解析器和解释器,目标是覆盖最新 ECMAScript 规范的 90% 以上,并通过 Test262 测试套件持续跟踪兼容性。
boa 可以免费使用吗?用的什么许可证?
boa 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
boa 还在维护吗?
活跃维护中。boa 最近一次提交是在 2026年10月31日。
boa 适合用来做什么?
在 Rust 应用中内嵌 JavaScript 执行能力,无需依赖 C++ 引擎。 在 Rust 宿主中求值用户提供的脚本或表达式。 学习或研究 JavaScript 语言实现与引擎内部机制。 在 WebAssembly 环境中运行 JavaScript。
boa 怎么安装和运行?
在 Cargo.toml 中添加 boa_engine 依赖: cargo add boa_engine 将示例代码复制到 main.rs 运行项目: cargo run
在哪里获取 boa?
源代码和安装说明在 GitHub 上:https://github.com/boa-dev/boa

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目