WASM by Example - 例で学ぶ WASM
(wasmbyexample.dev)WebAssembly(Wasm)の紹介
- WebAssembly(Wasm)は、Web 上で実行される汎用的な低レベルバイトコード
- Rust、AssemblyScript(TypeScript に類似)、Emscripten(C/C++)、TinyGo(Go)など、さまざまな言語のコンパイル対象となる
- 現在はすべての主要ブラウザで提供されており、サーバー上で実行したり、WASI を使ってシステムとインターフェースするためのランタイムも備えている
- Wasm は小型のバイナリ形式を提供し、JavaScript や他のホスト言語とともに実行できる、予測可能な性能と移植性を備えている
「Wasm By Example」とは?
- 「Wasm By Example」は、コードスニペットと注釈付きの WebAssembly サンプルプログラムを用いて、WebAssembly の簡潔で実践的な入門を提供する
- WebAssembly の基本概念を説明する例と、それらを活用してより大きなアプリケーションの共通機能を構築する方法を示す例が含まれている
WebAssembly(Wasm)の主要概念の例
- WebAssembly の主要な基本概念を表す例を提供している。
- これらの例は、WebAssembly でプロジェクトを構築する最も便利または生産的な方法とは限らないが、学習やアプリケーションの単純または低水準な部分の開発には適している。
- Hello World
- Exports
- WebAssembly Linear Memory
- Importing Javascript Functions Into WebAssembly
概念を適用した例
- 概念的な例を拡張し、こうした単純な例がどのようにより大きなアプリケーションの一般的な機能の構築に使われるかを示している
- Reading and Writing Graphics
- Reading and Writing Audio
エコシステムのツールと言語機能の例
- 選択したプログラミング言語のツール、ライブラリ、機能を強調する例を提供
- Passing High Level Data Types with
wasm-bindgen
- Passing High Level Data Types with
- こうしたエコシステムの構成要素は、強力なアプリケーションの構築に大いに役立つ可能性がある。
Web ブラウザ外での WebAssembly(Wasm)の例
- WebAssembly System Interface(WASI)、スタンドアロンの WebAssembly ランタイム、WASI を使用するアプリケーション向けのツール、さらにクラウドコンピューティングや IoT デバイスのような用途を強調する例を提供している
- WebAssembly はブラウザ向け Web に適した主要機能を備えており、こうした機能によりブラウザ外でも人気のある選択肢となっている
- WASI Introduction
- WASI Hello World
GN⁺の見解
この記事で最も重要な点は、WebAssembly(Wasm)がさまざまなプログラミング言語のコンパイル対象であり、Web ブラウザだけでなくサーバーや多様なシステムでも利用できる汎用性を持っていることだ。『Wasm By Example』は、初級ソフトウェアエンジニアが WebAssembly を容易に理解し、実際に応用してみられる実践的な例を提供することで、この技術がなぜ興味深く魅力的なのかをよく示している。WebAssembly の移植性と性能は現代の Web 開発において重要な要素であり、この記事はその技術を学びたい人に有益な情報を提供している。
1件のコメント
Hacker Newsの意見
hello_worldデモですら数MBのページを生成することには疑問がある。addの例が、実行時に引数を受け取れるインタラクティブな機能を備えていることに驚きを示している。