WebAssemblyはブラウザで実行できるバイナリ形式ファイルである。JSより高速。
WebAssembly(WASM)について
WebAssembly(WASM)はブラウザで実行できるバイナリ形式ファイル。JSより高速に実行でき、ファイル容量も小さい。ネイティブに近いパフォーマンスが期待できる。
Rust言語で実装し、wasm形式に変換するのが主流らしい。Rustについては前に学習したのでまとめリンクを貼っておく。
ユースケース
- rust言語で実装する
- wasm形式にコンパイルする
- wasmファイルをJavaScriptでロードする
- wasmファイルをブラウザで実行する
実例としてmarkdown-wasmがある。MarkdownをHTMLに変換するパーサだが、従来のJS製パーサより高速らしい。
awesome-wasmには様々なWASM関連プロジェクトがある。ゲームボーイのエミュレータなど、これまで負荷が高すぎてできなかったようなことが実現できるようになりそう。
参考資料
所感
ぜひとも身に付けたい技術。
WEBクライアントアプリの需要は高まる一方だ。あらゆるOSで動作するクロスプラットフォームに加え、実行速度まであがるならなおさら。そしてファイルサイズも縮小できればパケット通信費も減らせる。
かつてJSの代替言語としてDartが生まれたが、あまり流行らなかった。WebAssemblyはどうなるか。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux