Repolode
boa-dev

boa-dev/boa

Rust製の組み込み可能なJavaScriptエンジン。ECMAScript仕様を幅広くサポートするlexer、parser、interpreterを提供します。

スター
7,662
フォーク
690
未解決の Issue
223
最終コミット
14 時間前

これは何?

BoaはRustで書かれたJavaScriptのlexer、parser、interpreterです。最新のECMAScript仕様の90%以上への対応を目指しており、Test262スイートを基準に継続的な適合性テストを行っています。

エンジンは複数のRustクレートとして提供されています。中心となるboa_engineクレートを使うと、Rustアプリケーション内に実行コンテキストを作成し、JavaScriptのソースコードを直接評価できます。AST、parser、garbage collector、string interner、WebAPI風のランタイム機能を担うクレートもあり、ターミナルからJSファイルを実行するCLIとREPLも付属しています。

BoaはWebAssembly向けにコンパイルでき、ブラウザーで使えるライブプレイグラウンドも用意されています。READMEには、wasm32-unknown-unknownターゲット向けにfeature flagを有効化し、getrandomを設定する専用の手順が記載されています。

主な機能

  • 01Rust製のJavaScript lexer、parser、interpreter。
  • 02最新のECMAScript仕様の90%以上への対応を目指しています。
  • 03boa_engineクレートを使って組み込み可能で、シンプルなeval APIを備えています。
  • 04ASTのダンプやoptimizerのオプションを備えたCLIとREPLが付属しています。
  • 05WebAssembly向けにコンパイルでき、ブラウザープレイグラウンドも利用できます。

ユースケース

  • C++エンジンに依存せず、Rustアプリケーション内でJavaScriptを実行する。
  • Rustホストのサンドボックス内で、ユーザー提供のスクリプトや式を評価する。
  • JavaScriptの言語実装やエンジン内部の仕組みを試す。
  • WebAssembly環境でJavaScriptを実行する。

クイックスタート

  1. 1

    boa_engine crate を Cargo.toml に追加する

    cargo add boa_engine
  2. 2

    サンプルコードを main.rs にコピーする

  3. 3

    プロジェクトを実行する

    cargo run

使う前に知っておきたいこと

  • 作者自身が実験的なものと説明しているため、まだ本番環境での使用には適さない可能性があります。
  • ECMAScript の仕様にまだ完全には準拠しておらず、対応率は 90% 超とされています。

トピック

よくある質問

boa とは?
Rust製の組み込み可能なJavaScriptエンジン。ECMAScript仕様を幅広くサポートするlexer、parser、interpreterを提供します。 BoaはRustで書かれたJavaScriptのlexer、parser、interpreterです。最新のECMAScript仕様の90%以上への対応を目指しており、Test262スイートを基準に継続的な適合性テストを行っています。
boa は無料で使えますか?ライセンスは?
boa は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
boa は今もメンテナンスされていますか?
活発にメンテナンス中。boa の最終コミットは 2026年11月7日 です。
boa は何に使えますか?
C++エンジンに依存せず、Rustアプリケーション内でJavaScriptを実行する。 Rustホストのサンドボックス内で、ユーザー提供のスクリプトや式を評価する。 JavaScriptの言語実装やエンジン内部の仕組みを試す。 WebAssembly環境でJavaScriptを実行する。
boa のインストール方法は?
boa_engine crate を Cargo.toml に追加する: cargo add boa_engine サンプルコードを main.rs にコピーする プロジェクトを実行する: cargo run
boa はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/boa-dev/boa

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

実行中のJavaScriptを一時停止してヒープ全体をスナップショット化し、別プロセスで再開できる、ネイティブなTypeScript対応のQuickJSフォーク。

開発ツール#javascript-engine#typescript#embeddable
483+30 今週10COther活発にメンテナンス更新 5 日前