「[[.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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS