WebAssembly night #10に参加しました。
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アプレットの再発明にも見えはまるユースケースがまだまだ少ないように思えました。