Chicory - JVMネイティブWebAssemblyランタイム
(github.com/dylibso)- 追加の依存関係なしに純粋なJavaで実装されたWasmランタイム
- JVMが動作する環境であればどこでもWasmモジュールを実行可能
- 自身のプロジェクトに簡単に組み込めるため、プラグインシステムを容易に実装できる
- WebAssemblyモジュールはサンドボックス環境で実行されるため、設計上セキュリティ面で有利。すべてのリソースを制御可能
- Wasmコア仕様の完全サポートを目指している
- 他のWasmランタイムの短所
- v8、wasmtime、wasmer、wasmedge、wazero などさまざまなWasmランタイムがあるが、その多くはネイティブ言語で書かれており、配布時にOS/アーキテクチャごとのバイナリを含める必要がある
- ネイティブコードとFFI(外部関数呼び出し)を使用すると、JVMのツール、セキュリティモデル、Observabilityの恩恵を受けられなくなる可能性がある
2件のコメント
Wasmランタイムの欠点という部分は、JVMにも当てはまるのではないでしょうか……。Java開発者の立場から見た欠点を書かれた、ということですよね?
Java好きなんですが、JavaでwasmをやるのってあまりしっくりくるものがなくてRustを勉強しているところなので、うれしいですね。
Rustを勉強している理由のひとつには、低レベルなものへのノスタルジーもあります。