Skip to content

DNET_WebAssembly

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

WebAssembly

概要

  • モダン・ブラウザで実行できる新しいタイプのコードで

  • 複数の言語で記述可能(C/C++、Rust、Go、Kotlin/Native、JavaやC#)

  • 低レベルな仮想的アセンブリ風言語にクロスコンパイルされる。

    • コンパクトなバイナリ形式
    • ポータブルなスタックマシン
  • WebAssemblyのバイナリ形式は、WASM(.wasmファイル)と呼ばれる。

    • コンパイラが出力する実体ファイル(program.wasm)
    • テキスト形式(WAT: WebAssembly Text format)も存在
  • WebAssemblyとJavaScript

    • JavaScript を補完、並行動作 / 相互運用
    • ネイティブに近いパフォーマンスで動作
  • 開発は主要ブラウザメーカーにより行われている(Mozilla、マイクロソフト、Google、アップル)

  • 最近はブラウザ上に留まらずクロスプラットフォーム対応が追加されコンテナ代替が期待されている。

詳細

Wasm/WASI

Wasm

WebAssemblyのコンパイラが出力する実体ファイル

  • 1.0 (2017) ─ W3C標準
  • 2.0 (2022) ─ SIMD等の命令追加
  • 3.0 (2025) ─ GC・例外処理等

WASI

ブラウザ外で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の登場でクロスプラットフォームになった。
  • コレにより、コンテナ技術を代替し、エッジ・サーバーレス領域への進出が期待されている。

参考

移行メモ

  • 「マイクロソフトの新しいSAPフレームワークである Blazor」の「SAP」は 「SPA」の誤記のため修正した。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Blazor に張り替えた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。

Tags: 移行, WebAssembly, Wasm, WASI, Blazor, ブラウザ, クロスプラットフォーム

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally