Closed2

wasmってざっくりいうとなに?

eisukeeisuke

GPTさんに聞いてみた

WebAssembly(通常は "WASM" として参照されます)は、Webブラウザでの高速な実行を目的とした新しいバイナリ命令形式です。以下に、WASMの主な特徴や概要を簡単にまとめました:

  1. パフォーマンス: WASMはバイナリフォーマットであるため、ブラウザが高速にデコードでき、JavaScriptよりも効率的に実行できる可能性があります。
  2. 言語対応: WASMは、C、C++、Rustなどの言語からコンパイルすることができます。これにより、これらの言語で書かれたコードをWeb上で直接実行することが可能になります。
  3. セキュリティ: WASMはサンドボックス内で実行されるので、ホストシステムに対する悪意のある操作を防ぐことができます。
  4. JSとの連携: WASMモジュールはJavaScriptから呼び出すことができ、またJavaScriptとデータをやり取りすることも可能です。
  5. ポータビリティ: WASMは仮想的なマシンコードとして設計されており、多様なハードウェア上で実行することができます。

ざっくりと言うと、WASMはWebブラウザでの高速な実行を可能にする新しいプログラミング言語のターゲットとなるバイナリフォーマットです。JavaScriptの限界を超えて、Webアプリケーションのパフォーマンスを向上させることを目的としています。

eisukeeisuke

自分なりの解釈

  • ブラウザで高速に実行するために作られている(JSより早い)
    • バイナリ形式のためサイズがコンパクト
    • サイズが少ないためダウンロードが高速
    • すでにバイナリ形式なので中間言語などに変換されることがないのでデコードが高速
    • 伝送時に効率よく圧縮できる
  • AOTコンパイルをサポートしていて実行前に機械語にコンパイルされるためオーバーヘッドが少なくなっている
  • C,C++,Rustなどの言語からWASMにコンパイルできるのでこれらのコードをWebで実行できるようになる
  • セキュリティに強い
    • WASMはホストのファイルシステムやOSの機能にアクセスできない
    • メモリの範囲を制限できるためメモリ安全性が確保されている
    • 外部とのインタラクションがブラウザによって明確に定義されたインターフェースによって管理されている
    • Webブラウザのセキュリティモデルに従っている
  • JSとの連携も簡単にできJSモジュールを簡単に呼び出すことができる
  • 仮想的なmachineコードとして設計されているため多様なハードウェアで実行できる
このスクラップは2023/08/19にクローズされました