web assemblyメモ

WebAssemblyを試した記録

WebAssemblyはコンパイルでバイナリのWASMファイル,テキストベースのWASIfアイルが作れる

WASM,WASIをブラウザ用Javascriptのコードや,Node jsで読み込み,関数を実行できる(WASMでエクスポートした関数を呼び出す形)

WASMの仕様は現在も策定続いている? WASM自身がファイルアクセスやネットワークアクセスするためには,Javascript側のファイルアクセスやネットワークアクセスの機能を使う(コールする)必要がある

WASMへのコンパイルは様々な言語で試みられている RUSTはデフォルトでWASMへの出力がある C#はDOTNET7以降であれば,wasm-sdkを入れてコンパイルすればWASM出力できる また,Blazor WebAssemblyでも内部的に使われている(あまり意識する必要なかった)

Javascript Typescriptではまだ完全なWASMへのコンパイラはできていない(これから仕様策定の段階とのこと)

Typescript風に書けるAssemblyScriptというのがあるが,型拡張できなかったり,JSONパースもなかったり,ネットワーク系はじめ標準ライブラリも制限されているので用途限られる(多くは,QuickJSというのを処理系に入れているのでそれで使える機能のみが使える状態)

WebAssemblyに期待していること

もともとバックエンドよりなので,個人的にはフロントエンドの高速化よりもバックエンド側での用途を期待している

Docker初めとしたコンテナの実行環境がメジャーになってはいるが,個人的にコンテナは ベースイメージのメンテナンスと,ライブラリのメンテナンス2つあるとこで動かなくなったり,イメージビルドできなくなったりと課題感じていたので,コンパイルした後はそれを使いまわせるWebAssemblyのほうが取り回し楽なのではと感じている

戻る