WebAssemblyランタイム「Wasmer 5.0」公開 iOSでWebAssemblyを実行可能に、その仕組みとは?:「モバイル開発の可能性が広がる」
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の変更点
より多くのバックエンドの実験的サポート
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を実行できる環境は以下の通り。
- ネイティブ(Wasmerネイティブコンパイラ経由で実行可能)
- Singlepass:ブロックチェーンに適している
- Cranelift:開発環境に適している
- LLVM:本番ワークロードに適している
- ブラウザ(ブラウザ内部に組み込まれたWasmエンジン経由で実行可能)
- JavaScriptCore:AppleのJavaScriptCoreエンジン。macOSで軽量かつ高性能なランタイムを使用したい場合に適している
- V8:iOSやAndroidでWasmerを使いたい場合に適している
- Wasmi:純粋なRustコードベースでWasmをnostd環境やRustコードベースのブロックチェーンで使いたい場合に適している
- WAMR:iOSに適している
「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.
関連記事
WasmerでJavaScriptやブラウザからCプログラムをコンパイル可能に ローカルで試せるデモも公開
Wasmerは、同社のWebAssemblyランタイム「Wasmer」とJavaScript SDKの最新リリースにより、JavaScriptとブラウザでC/C++コンパイラ「clang」が実行可能になったと発表した。WebAssemblyランタイム「Wasmer」がPHPに対応 Wasmerで「WordPressを3倍高速に動かす」手法とは
Wasmerは、同社のWebAssemblyランタイム「Wasmer」とサーバレスアプリケーションプラットフォーム「Wasmer Edge」で、PHPを完全に実行できるようになったと発表した。Notionブラウザ版、WebAssembly版SQLite3でページ遷移速度を20%改善 実装時の苦労と教訓とは?
Notion Labsは公式ブログで、NotionのデータキャッシュにWebAssembly実装の「SQLite3 WASM/JS」を採用した事例を紹介する記事を公開した。適用に至るまでの苦労や教訓を明らかにしている。