wasm
作成日時:2024-08-01以前
更新日時:2024-08-01
WebAssemblyとは?→ https://ja.wikipedia.org/wiki/WebAssembly
凄く簡単に言えばブラウザでバイナリコードを実行できる技術。速い。
フロント周りにおけるWebAssembly(以降wasm)に関して私が思っていることを箇条書き。特に内容はまとまってない。
- wasmによってJavaScript以外の言語でもフロント開発できるようになっているけど今後どうなるんだろうか。
(フレームワークで言うとyew(Rust)とかBlazor WebAssembly(C#)とか)
wasmフレームワークは流行る? - wasmはゲームとか画像処理とかの重い処理をブラウザ上でJSの代わりにやるためのものだと思ってた。
最近はブラウザでPythonを動かすための実行環境を構築したり、クラウドネイティブで動いたり、何でもありな印象 - 現時点ではDOM操作はwasmよりJSの方が速いらしい(参考:https://yew.rs/ja/ )。
仮にwasmの方がDOM操作も速くなればwasm系によるフロント開発が増えるんだろうか。 - だがメリットはサーバーサイドと同じ言語が使えるとかそのぐらいしか思いつかない。
ファイルサイズを小さくできるかと思ったがJSのminifyで事足りそう。
フロントすべてがwasmになることはなく、これまで通り基本はJS、重い処理はwasmという感じになりそうか- でもBlazorが流行っているっぽい。C#でフロント書けるから?
https://www.publickey1.jp/blog/22/webassemblyrustwebassemblywasmtimethe_state_of_webassembly_2022.html - そういった感じで採用されてるのか?Rustのエンジニアしかいないからyewで~。C#のエンジニアしかいないからBlazorで~。とか
- まあ採用実績やドキュメントは多い方がいいし、今はReact(またはSolid)でいいのでは
- でもBlazorが流行っているっぽい。C#でフロント書けるから?
- Lambdaの重い処理をwasmに置き換えてユーザ側で行わせるようにすればその分Lambdaのお金を浮かせられるだろうか
- WasmCloudが広まっていくか。
- Web Workerと絡めたマルチスレッドとかよさげ。
TypeScriptの次はRustかもしれない
WASMとRustはVue.js/React.jsを打倒するのか?
PythonコードをHTML内に記述して実行可能
インストール
Rust をインストール - Rustプログラミング言語
RustからWebAssembly (wasm)を生成してJavaScriptとブリッジ通信してみる | DevelopersIO
cargo install wasm-pack
you may need to install Visual Studio build tools with the "C++ build tools" workload
と怒られるので、“C++ build tools”をインストール。
Visual Studio Tools のダウンロード - Windows、Mac、Linux 用の無料インストール
Build Tools for Visual Studio 2022
インストーラで「C++ Buildtools」にチェック
色々エラーが出たが、対処法はエラーログを見れば分かる。
「perlのversionが古い」と怒られる。