「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>HTML/CSS/JavaScript]] * 目次 [#i44cb742] #contents *概要 [#b89d3ed3] -モダン・ブラウザで実行できる新しいタイプのコードで -複数の言語で記述可能(C/C++、Rust、Go、Kotlin/Native、JavaやC#) -低レベルな仮想的アセンブリ風言語にクロスコンパイルされる。 --コンパクトなバイナリ形式 --ポータブルなスタックマシン -WebAssemblyのバイナリ形式は、WASM(.wasmファイル)と呼ばれる。 --コンパイラが出力する実体ファイル(program.wasm) --テキスト形式(WAT: WebAssembly Text format)も存在 -WebAssemblyとJavaScript --JavaScript を補完、並行動作 / 相互運用 --ネイティブに近いパフォーマンスで動作 -開発は主要ブラウザメーカーにより行われている(Mozilla、マイクロソフト、Google、アップル) -最近はブラウザ上に留まらずクロスプラットフォーム対応が追加されコンテナ代替が期待されている。 *詳細 [#u97df9c2] **Wasm/WASI [#b8efcf34] ***Wasm [#iea80ce1] WebAssemblyのコンパイラが出力する実体ファイル -1.0 (2017) ─ W3C標準 -2.0 (2022) ─ SIMD等の命令追加 -3.0 (2025) ─ GC・例外処理等 ***WASI [#pb64f59d] ブラウザ外でOSと話すためのAPI仕様(WebAssembly System Interface) -Preview1 (2019) ─ 初期版(基本的なファイル・標準IO) -0.2 (2024) ─ Component Model・HTTP・TCP追加 -0.3 (2026) ─ ネイティブAsync I/O追加(RC段階) -1.0 (2026後半予定) ─ 正式安定版 **動作環境 [#v1e8e959] ***ブラウザ上 [#dfd2e888] -プラグインは不要で、古いブラウザでもasm.jsによるフォールバックで動作 -マイクロソフトの新しいSAPフレームワークである[[Blazor>https://techinfoofmicrosofttech.osscons.jp/index.php?Blazor]]などで使用される。 ***プラットフォーム上 [#y7215d19] -もともと、ブラウザ上で動作するものだったが、WASIの登場でクロスプラットフォームになった。 -もともと、ブラウザ上で動作するものだったが、[[WASI>#pb64f59d]]の登場でクロスプラットフォームになった。 -コレにより、コンテナ技術を代替し、エッジ・サーバーレス領域への進出が期待されている。 *参考 [#g6eacab2] -WebAssembly~ https://webassembly.org/ -WebAssembly - Wikipedia~ https://ja.wikipedia.org/wiki/WebAssembly -WebAssembly | MDN~ https://developer.mozilla.org/ja/docs/WebAssembly -Go × WebAssemblyで電卓のWebアプリを作ってみた - Sansan Builders Box~ https://buildersbox.corp-sansan.com/entry/2019/02/14/113000 -Blazor - マイクロソフト系技術情報 Wiki~ https://techinfoofmicrosofttech.osscons.jp/index.php?Blazor