-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_WebAssembly
-
モダン・ブラウザで実行できる新しいタイプのコードで
-
複数の言語で記述可能(C/C++、Rust、Go、Kotlin/Native、JavaやC#)
-
低レベルな仮想的アセンブリ風言語にクロスコンパイルされる。
- コンパクトなバイナリ形式
- ポータブルなスタックマシン
-
WebAssemblyのバイナリ形式は、WASM(.wasmファイル)と呼ばれる。
- コンパイラが出力する実体ファイル(program.wasm)
- テキスト形式(WAT: WebAssembly Text format)も存在
-
WebAssemblyとJavaScript
- JavaScript を補完、並行動作 / 相互運用
- ネイティブに近いパフォーマンスで動作
-
開発は主要ブラウザメーカーにより行われている(Mozilla、マイクロソフト、Google、アップル)
-
最近はブラウザ上に留まらずクロスプラットフォーム対応が追加されコンテナ代替が期待されている。
WebAssemblyのコンパイラが出力する実体ファイル
- 1.0 (2017) ─ W3C標準
- 2.0 (2022) ─ SIMD等の命令追加
- 3.0 (2025) ─ GC・例外処理等
ブラウザ外で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後半予定) ─ 正式安定版
- プラグインは不要で、古いブラウザでもasm.jsによるフォールバックで動作
- マイクロソフトの新しいSPAフレームワークであるBlazorなどで使用される。
- もともと、ブラウザ上で動作するものだったが、WASIの登場でクロスプラットフォームになった。
- コレにより、コンテナ技術を代替し、エッジ・サーバーレス領域への進出が期待されている。
-
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
移行メモ
- 「マイクロソフトの新しいSAPフレームワークである Blazor」の「SAP」は 「SPA」の誤記のため修正した。
- マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Blazor に張り替えた。
- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。
Tags: 移行, WebAssembly, Wasm, WASI, Blazor, ブラウザ, クロスプラットフォーム
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。