マイクロコントローラーにも載せられる小型の、C製高速WebAssemblyインタープリター。多くの言語からライブラリとして組み込めます。
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
boa_engine crate を Cargo.toml に追加する
cargo add boa_engine - 2
サンプルコードを main.rs にコピーする
- 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 の数値は毎日更新されます。
関連プロジェクト
WebAssembly Micro Runtime(WAMR)は、組み込み、IoT、エッジなどのリソースに制約のある環境向けの軽量Wasmランタイムです。
実行中のJavaScriptを一時停止してヒープ全体をスナップショット化し、別プロセスで再開できる、ネイティブなTypeScript対応のQuickJSフォーク。
Goアプリケーションへの組み込みに使える、純Go製のECMAScript 5.1 JavaScriptエンジン。
Rust製の超高速なTypeScript/JavaScriptコンパイラ兼パーサー。RustとJavaScriptの両方から利用できます。
POSIX、Bash、Zsh、mkshのシェルスクリプトを解析・整形・実行できるGoライブラリとshfmt CLI。