WebAssembly
#フロント
#rust #go #mozilla
Hub
https://webassemblyhub.io/
Homepage
https://webassembly.org
プログラミング言語の対応状況
C++,Rust, Go など
----
ユースケース
バイナリをJSから呼び出せる
既存コードの高速化するための置き換えなど
動画変換などをサーバーではなくブラウザーで行う。
エコシステム
wasm-pack
npm用コンパイラー?
https://github.com/rustwasm/wasm-pack
npmで公開するためのツール
https://github.com/rustwasm/wasm-bindgen
Web Workerと組み合わせ
https://developer.mozilla.org/ja/docs/Web/API/Web_Workers_API/Using_web_workers
時間がかかる処理をバックグラウンドで動作させる
WebAssembly: 「なぜ」と「どうやって」
WebAssembly: How and why の翻訳
名前に反して、WebAssembly は 本来の意味でのアセンブリ言語ではありません。
特定のマシン(機械)に対応したものでは無いからです。ブラウザに対応したもの
WebAssembly は JavaScript の代替では無くパートナ
コンピューターにバイナリをダウンロードして直接実行するよりも、安全です。
なぜならブラウザは、コードが実行された時にあなたのシステムがめちゃくちゃにされように、 セキュリティ性 を念頭に置いて設計されているからです
Proxy-Wasm
Proxy-Wasm + Rust による Envoy の拡張 ―― 独自メトリクスの追加を例に
Wasmをブラウザー以外、プロキシサーバで使用する。
Envoyにおいて、C++実装のプラグインを組み込むところをWasmで組み込む
LogRocker
フロントエンドのログ
ブラウザー操作のユーザーの行動を分析
動画
https://tekito-style.me/columns/howto-use-logrocket
Python
https://pyodide.org/en/0.17.0a2/
------
TypeScriptやGoやRustでWebAssemblyウォークスルー - SMARTCAMP Engineer Blog
Goはランタイムがまだ大きい
WebAssembly使うならRustか