WasmバイナリをWin/Mac/Linuxで実行可能なバイナリファイルへ変換可能に「Wasmer 3.0」正式リリース

スタンドアロンのWebAssemblyランタイム「Wasmer」の最新版「Wasmer 3.0」が正式リリースされました。

fig

https://platform.twitter.com/embed/Tweet.html?dnt=false&embedId=twitter-widget-0&features=eyJ0ZndfdGltZWxpbmVfbGlzdCI6eyJidWNrZXQiOlsibGlua3RyLmVlIiwidHIuZWUiLCJ0ZXJyYS5jb20uYnIiLCJ3d3cubGlua3RyLmVlIiwid3d3LnRyLmVlIiwid3d3LnRlcnJhLmNvbS5iciJdLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X2hvcml6b25fdGltZWxpbmVfMTIwMzQiOnsiYnVja2V0IjoidHJlYXRtZW50IiwidmVyc2lvbiI6bnVsbH0sInRmd190d2VldF9lZGl0X2JhY2tlbmQiOnsiYnVja2V0Ijoib24iLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X3JlZnNyY19zZXNzaW9uIjp7ImJ1Y2tldCI6Im9uIiwidmVyc2lvbiI6bnVsbH0sInRmd19zaG93X2J1c2luZXNzX3ZlcmlmaWVkX2JhZGdlIjp7ImJ1Y2tldCI6Im9mZiIsInZlcnNpb24iOm51bGx9LCJ0ZndfY2hpbl9waWxsc18xNDc0MSI6eyJidWNrZXQiOiJjb2xvcl9pY29ucyIsInZlcnNpb24iOm51bGx9LCJ0ZndfdHdlZXRfcmVzdWx0X21pZ3JhdGlvbl8xMzk3OSI6eyJidWNrZXQiOiJ0d2VldF9yZXN1bHQiLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X3NlbnNpdGl2ZV9tZWRpYV9pbnRlcnN0aXRpYWxfMTM5NjMiOnsiYnVja2V0IjoiaW50ZXJzdGl0aWFsIiwidmVyc2lvbiI6bnVsbH0sInRmd19leHBlcmltZW50c19jb29raWVfZXhwaXJhdGlvbiI6eyJidWNrZXQiOjEyMDk2MDAsInZlcnNpb24iOm51bGx9LCJ0ZndfZHVwbGljYXRlX3NjcmliZXNfdG9fc2V0dGluZ3MiOnsiYnVja2V0Ijoib24iLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X3ZpZGVvX2hsc19keW5hbWljX21hbmlmZXN0c18xNTA4MiI6eyJidWNrZXQiOiJ0cnVlX2JpdHJhdGUiLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X3Nob3dfYmx1ZV92ZXJpZmllZF9iYWRnZSI6eyJidWNrZXQiOiJvbiIsInZlcnNpb24iOm51bGx9LCJ0ZndfdHdlZXRfZWRpdF9mcm9udGVuZCI6eyJidWNrZXQiOiJvbiIsInZlcnNpb24iOm51bGx9fQ%3D%3D&frame=false&hideCard=false&hideThread=false&id=1595462363553013766&lang=ja&origin=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F22%2Fwasmwinmaclinuxwasmer_30.html&sessionId=2893a92c7cdd15ec5100a9198eb1be30a215f9aa&siteScreenName=publickey&theme=light&widgetsVersion=a3525f077c700%3A1667415560940&width=550px

Wasmerはオープンソースで開発されているWebAssemblyランタイムです。

WebAssemblyの動向を調査しているThe State of WebAssembly 2022によると、WasmerはWebAssemblyランタイムとして事実上の参照実装であるWasmtimeに続いて2番目に人気のあるランタイムとなっています。

参考:WebAssemblyアプリ開発ではRustが一番人気、用途ではサーバレスが急上昇、ランタイムはWasmtime。The State of WebAssembly 2022

WindowsやMac、Linuxで実行できるネイティブバイナリの生成が可能に

Wasmer 3.0での注目の新機能は、WindowsやMac、Linuxでそのまま実行できるネイティブバイナリの生成機能でしょう。これによりWebAssembly経由でさまざまなプラットフォーム向けのバイナリが生成できることになります。

figWebAssembly as a Universal Binary Format (Part I: Native executables)」から

具体的にはWebAssemblyバイナリからWasmerがターゲットとなるプラットフォームに対応した静的なバイナリを生成し、そのバイナリを読み込んで実行する最小限にWasmerのサブセットをリンクして実行形式にするものです。

これによりWebAssemblyの特徴である安全なサンドボックスを備えつつ、ネイティブなバイナリの実行が可能になると説明されています。

また、WebAssemblyのパッケージマネージメントとレジストリの機能を備えたWAPMも機能強化が行われました。

これまではいったんWebAssemblyのパッケージを手元のマシンにダウンロードしてからでないとパッケージを実行することができなかったのですが、「wasmer run」コマンドで直接リポジトリ上のパッケージを指定すると、自動的にダウンロードが行われてそのまま実行されるようになりました。

そのほかWasmer 3.0では高速化やWASI対応の改善、コンパイラの改善、実行エンジンのシンプル化など多くの改善が行われています。