RustでJavaScriptエンジンV8が使える「Rusty V8」安定版リリース
2024年9月26日(木)18時31分 マイナビニュース
Deno開発チームのRyan Dah(lライアン・ダール)氏は現地時間9月24日、JavaScriptエンジン「V8」のバインディングライブラリ「Rusty V8」初の安定版「129.0.0」のリリースを発表した。
○5年越しの安定版リリースとなる「Rusty V8」
「Rusty V8」はプログラミング言語Rustにおいて、JavaScriptエンジン「V8」の「C++ API」に追加呼出しなど不要な動作を排除したバインディングライブラリでRust公式パッケージ管理ツール「cargo」に統合され、Rustプロジェクトより簡単に組み込むことができる。2019年にJavaScriptランタイム構築のためGo言語からRustに変更し開発が進められており、「crates.io(https://crates.io/crates/v8)」にて5年越し134回のリリースを重ねて安定版となっている。
同ライブラリを活用することで、組み込みデバイス、サーバーレス環境などで「V8」を活用した独自のJavaScriptランタイムをRustで開発できるようになる。「V8」のWebAssemblyモジュールの実行や、V8のデバッグツールinspectorを利用したブレークポイント、プロファイリングなどのデバッグ機能やcppgcガベージコレクターによるメモリ管理が可能になるなど、JavaScriptからRust関数を呼び出すことで低オーバーヘッドの高速アプリケーション開発が可能になる。
「Rusty V8」のバージョン表記は「1.0」とならず、「V8」との同期を保つためChromeのバージョン管理に準拠し「Chrome 129」に対応した「129.0.0」となっている。今後、4週間ごとに「V8」の依存関係をアップグレードしメジャーバージョンを上げていくという。「Rusty V8」の詳細は、docs.rs/v8で確認できる。
○5年越しの安定版リリースとなる「Rusty V8」
「Rusty V8」はプログラミング言語Rustにおいて、JavaScriptエンジン「V8」の「C++ API」に追加呼出しなど不要な動作を排除したバインディングライブラリでRust公式パッケージ管理ツール「cargo」に統合され、Rustプロジェクトより簡単に組み込むことができる。2019年にJavaScriptランタイム構築のためGo言語からRustに変更し開発が進められており、「crates.io(https://crates.io/crates/v8)」にて5年越し134回のリリースを重ねて安定版となっている。
同ライブラリを活用することで、組み込みデバイス、サーバーレス環境などで「V8」を活用した独自のJavaScriptランタイムをRustで開発できるようになる。「V8」のWebAssemblyモジュールの実行や、V8のデバッグツールinspectorを利用したブレークポイント、プロファイリングなどのデバッグ機能やcppgcガベージコレクターによるメモリ管理が可能になるなど、JavaScriptからRust関数を呼び出すことで低オーバーヘッドの高速アプリケーション開発が可能になる。
「Rusty V8」のバージョン表記は「1.0」とならず、「V8」との同期を保つためChromeのバージョン管理に準拠し「Chrome 129」に対応した「129.0.0」となっている。今後、4週間ごとに「V8」の依存関係をアップグレードしメジャーバージョンを上げていくという。「Rusty V8」の詳細は、docs.rs/v8で確認できる。