algonote

There's More Than One Way To Do It

WebAssembly night #10 メモ #wasmnight

WebAssembly night #10に参加しました。

f:id:hiromichinomata:20201209203422p:plain:w200

Proxy-Wasm: Wasmを利用したPlugin機構の開発 by mathetake

WebAssembly System Interfaceを実装したランタイムを使うことでブラウザ外でもWasmが動くようになる。

Envoyは静的リンクが前提でstable APIが決まっていなくてつらいのでwasmを利用。そこからさらに一般化してProxy-Wasmが作られた。

Wasmコンパイラー作りの楽しみ by igrep

Arm32はArm64より複雑だがWasmをサポートしたJITコンパイラがなかったのでWasmコンパイラーを作った。

Wasmリンカのつくりかた by kateinoigakukun

SwiftからWasmに愚直にコンパイルすると数MBになるためWebサービスで提供するとUXが悪い。 リンカを使うことで重い標準ライブラリのロードを分けられる。

リンカ本体は3000行程度。

やっぱりWasmはC++!!! by Yuusuke KOUNOIKE

ブラウザ画像処理の話。

背景ぼかしではtensorflow.jsで作られたBodyPixがよく使われる.tensorflow.jsにはWebGL, wasmのバッグエンドがある。

所感

今のWasmはネイティブでも動くんですね。.NETやJVMよりはレイヤーが低いのとGCのない言語でしかほぼ動かないので開発者フレンドリーかというと謎です。

UWPアプリみたいなのが少なくともC向けアプリで流行っていないのは人々はネイティブ化されるならWebViewでは得られないネイティブルックの体験を求めていると言うことなのだと思います。WebAssemblyのセキュリティー重視はともすればJavaアプレットの再発明にも見えはまるユースケースがまだまだ少ないように思えました。