ITエンジニア/デザイナ向けにオープンソースを毎日紹介

WebAssemblyはWebと冠があるものの、もはやWebだけのものではなくなっています。Node.jsでは元々CUIでも実行できる状態でしたし、PHPでWebAssemblyを実行できるphp-ext-wasmもあります。

今回紹介するのは様々なソフトウェアをWebAssembly化し、ローカルで実行できるwasmerを紹介します。

wasmerの使い方

なんとLuaをWebAssembly化しています。普通にREPLが立ち上がります。

$ wasmer run lua.wasm 
Lua 5.4.0  Copyright (C) 1994-2018 Lua.org, PUC-Rio
> 

Pythonで記述されたPython処理系であるPyPyをJavaScriptに変換したpypyjsをWebAssemblyにしたpypyjs.wasmを実行するデモです。もはや意味分かりません。

$ wasmer run pypyjs.wasm
(debug:, hello world)

さらにnginxをWebAssembly化したデモもあります。

wasmerはWebAssemblyをユニバーサルバイナリーと定義しています。まさにWebAssemblyを実行する環境さえあれば、それがWebブラウザでもローカルでもサーバでも関係なく動作するのは魅力です。実行時にビルドが入るのでちょっと時間がかかるのが難点ですが、将来的に解決すれば魅力的なソフトウェアになりそうです。

wasmerはRust製のオープンソース・ソフトウェア(MIT License)です。

Wasmer

wasmerio/wasmer: Universal Binaries Powered by WebAssembly

 

MOONGIFTの関連記事

コメント

  • DevRel
  • Com2