nodeやWebブラウザ上のJavaScript実行エンジンとしてはv8が最もよく知られています。かつてに比べると圧倒的に拘束で、JavaScriptがWebアプリケーションなどで十分に使えるようになったのはv8エンジンのお陰でしょう。 そんな中、新しいJavaScript/TypeScript実行エンジンとしてElsaを紹介します。言語はGoを採用しています。

Elsaの使い方

実際に使っているところとしては、普通に使えますといった感じです。

$ go run main.go run js/00_core.js 
{ "FSCwd": 5, "FSDirExists": 4, "FSExists": 3, "FSMkdir": 9, "FSRead": 2, "FSRemove": 7, "FSStats": 6, "FSWrite": 1, "Fetch": 20, "Log": 10, "Plugin": 15, "Serve": 25 }

Elsaはその内部にQuickJSという実行環境を用いています。ベンチマークによれば、速度はv8の方が高速ですが、実行バイナリのサイズは圧倒的にQuickJSの方が小さいようです。ES2020が使えるとのことで、モダンなJavaScriptであればElsaで使えるでしょう。PCよりももっと小さな、小型デバイスで活きそうです。

ElsaはGo製のオープンソース・ソフトウェア(MIT License)です。

elsaland/elsa: ❄️ Elsa is a minimal, fast and secure runtime for Javascript and Typescript written in Go