RustでWebAssemblyを開発している人は多いでしょう。JavaScriptと比べて高速に動作しますが、コンパイルが伴うので動的に動作を変えるのが困難です。例えばユーザにコードを入力してもらって、それをマクロ的に動かしたいということもあるでしょう。 そんな時に使ってみたいのがboaです。Rustで作られたJavaScript実行エンジンになります。

boaの使い方

最後に返値を指定します。

関数も使えます。

ECMAScript6の構文も使えます。

boaはクラスは使えないなど、すべてのJavaScript構文をサポートしているわけではありません。しかし、簡単なマクロレベルの構文であれば十分対応できるでしょう。実行がサンドボックス内に限られることで、ユーザが記述したコードも安全に実行できるはずです。面白い使い方もできそうです。

boaはRust製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

Webpack App jasonwilliams/boa: Javascript engine written in Rust