Wasmerは、WebAssemblyランタイム「Wasmer」の最新版となる「Wasmer 5.0」を公開した。Wasmer 5.0では、iOS上でWebAssemblyモジュールをシームレスに実行できるという。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
WebAssembly(Wasm)ランタイムを開発するWasmerは2024年10月30日(米国時間)、同社のWasmランタイム「Wasmer」の最新版「Wasmer v5.0」を発表した。
WebAssemblyは、Webブラウザなどモダンな実行環境での効率的なコード実行とコンパクトなコード表現を実現する安全でポータブルな低レベルフォーマット。World Wide Web Consortium(W3C)がコア仕様をW3C勧告として公開している。Wasmerは、WebAssemblyをネイティブで実行できるようにするオープンソースのランタイムだ。
Wasmer v5.0では、「WebAssembly C and C++ API」(Wasm-C-API)を使用した統合により、GoogleのJavaScriptエンジン「V8」、Rustで実装されたオープンソースのインタープリタ「Wasmi」、Cで実装されたオープンソースのエッジ向けWasmランタイム「WAMR(WebAssembly Micro Runtime)」のサポートが追加された。またWasm-C-API仕様に対応するインタープリタやランタイムも簡単にWasmerに統合できるようになった。
Wasmer v5.0を使用して、WebAssemblyを実行できる環境は以下の通り。
「2023年に、iOS上での実行環境の実現を目指して、WasmerにJavaScriptCoreのサポートを追加した。だが、iOS 14以降、iOSはJavaScriptCore経由でのWasmの実行を制限した。V8、Wasmi、WAMRを活用することで、iOS上でWebAssemblyモジュールをシームレスに実行できる。コードベースの変更も不要だ。モバイル開発の可能性が広がり、Appleのエコシステム上で高性能なアプリケーションを実現できるようになる」と、Wasmerは述べている。
Wasmer 5.0では、Wasmerのコードベースを可能な限り軽量化し、新機能をより迅速に開発できることに特に重点を置いた。この取り組みの一環として、ツールチェーンである「Emscripten」のサポートを中止し、依存関係を整理した結果、Wasmerのコードベースから2万行のコードを削減したという。
モジュールのデシリアライズが最大50%高速化された(「Module::deserialize」を呼び出したとき、または「wasmer run」でモジュールを実行したとき)。
これらの改良は、モジュールのデシリアライズに使用しているゼロコピーデシリアライゼーションライブラリ「rkyv」のアップデートによるものだ。
CraneliftやLLVM 18との統合により実行速度が大幅に改善され、WebAssemblyモジュールの実行が高速化した。また、Wasmer v5.0では、「loongarch64」の実験的なサポートも追加されている。
Copyright © ITmedia, Inc. All Rights Reserved.