WebAssemblyランタイム「Wasmer 3.0」公開、WAPMパッケージを直接実行できる「run」コマンド実装:WAPMパッケージを直接実行可能、エンジンが簡素化
Wasmerは、WebAssemblyをサーバなどで実行するためのオープンソースランタイムの最新版「Wasmer 3.0」をリリースした。
Wasmerは2022年11月23日(米国時間)、オープンソースのWebAssemblyランタイムの最新版「Wasmer 3.0」をリリースしたと発表した。
WebAssembly(「Wasm」と略される場合もある)は、Webブラウザなどモダンな実行環境での効率的なコード実行とコンパクトなコード表現を実現する安全でポータブルな低レベルフォーマット。World Wide Web Consortium(W3C)がコア仕様をW3C勧告として公開している。Wasmerは、WebAssemblyをサーバなどで実行できるようにするランタイムだ。
Wasmer 3.0の新機能
Wasmer 3.0の新機能は次の通り。
「wasmer run」
「wasmer run」コマンドにより、WAPMパッケージを直接実行できるようになった。
WAPMは、WebAssemblyモジュールのオープンソースパッケージマネジャーで、Wasmerなど任意のWebAssemblyランタイムからスタンドアロンで使用できる。WAPMエコシステムは、パッケージを保存、提供する「WAPMパッケージレジストリ」(wapm.io)と、パッケージをインストール、管理する「WAPMパッケージクライアント」(wapm CLI)という2つのツールで実現されており、これらのツールはWasmerにバンドルされている。
Wasmer 3.0ではwasmer runにより、wapm.ioに公開されているパッケージをwasmer CLIで実行できるようになった。例えば、「wasmer run python/python」により、wapm.ioから直接pythonパッケージをダウンロードし、実行できる。
これにより、wasmerでWAPMからWASI(WebAssembly System Interface)ファイルを実行するためのフローが大幅に簡素化される。WASIは、WebAssemblyのモジュラーシステムインタフェースだ。
改良されたAPIとメモリ管理
WasmerのRust APIが一から作り直され、新しいAPIとメモリ管理スタイルにより、Wasmオブジェクトを安全に「Store」に格納できる。
エンジンの簡素化
Wasmerではこれまで、dylibやユニバーサルなど、さまざまなコンセプトのエンジンが使われてきた。だが、コードの再利用を容易にするため、エンジンが1つに集約された。
ゼロコピーデシリアライゼーション
ビルドの成果物のゼロコピーデシリアライゼーションに「rkyv」が使用されるようになった。これにより、起動のパフォーマンスが大幅に向上した。
Wasmからネイティブ実行ファイルを作成
Wasmerの「create-exe」サブコマンドが刷新され、Wasmerは、WebAssemblyファイルをWindows、Linux、mac OSのネイティブ実行ファイルに変換できる。そのため、Wasmerのインストールを要求することなく、ユーザーに実行ファイルを配布可能だ。
改良されたWASI
WasmerのWASI実装がより成熟した。例えば、ファイルシステムの複数のバグが修正され、その内部型がWebAssembly Interfaces(WAI)で作り直された。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
利用者が増え続ける「WebAssembly」、ブラウザ実行できる4つ目の言語の魅力とは
ソフトウェアコンサルティング会社のScott Logicは、「WebAssembly」の使用状況に関する2回目の年次調査を実施、結果を発表した。WebAssemblyは「HTML」「CSS」「JavaScript」に続き、Webブラウザで実行可能なコードを作成できる4つ目の言語と位置付けられている。WebAssembly
WebAssemblyは、C/C++などで書かれたコードをWebページでも利用できるようにすることを念頭に置いたバイナリフォーマット。なぜわざわざ学習コストを払ってまでRustを採用するのか? Webエンジニア目線でRustを考察
Web開発者としての興味、関心に基づきRustを端的に紹介し、その強みや弱みについて理解を深める本連載。第1回では、Rustを採用するモチベーションとは何かを整理、考察します。