← レッスン一覧に戻る レッスン 3 / 8
初級 getting-started
はじめてのWebAssembly
はじめに
WebAssembly(Wasm)は、コンパイルされたコードをネイティブに近い速度でブラウザ上で実行できる技術です。Rustはゼロコスト抽象化、ガベージコレクタなし、小さなバイナリサイズという特徴から、Wasm開発に最適な言語の一つです。
仕組み
- Rustコードを書き、関数に
#[wasm_bindgen]アトリビュートを付けます wasm-packツールがRustコードを.wasmバイナリにコンパイルします- JavaScriptからエクスポートされた関数を直接呼び出せます
主要な概念
#[wasm_bindgen]— JavaScriptからアクセス可能な関数を示すアトリビュート&str— Rustの文字列スライス型。JS文字列から自動変換されます- 戻り値の型 —
String、i32、f64などのRust型はJS型に自動変換されます
JavaScriptからの呼び出し
wasm-pack でコンパイルした後、Rust関数を直接インポートして呼び出せます:
import init, { greet, add } from './pkg/hello_wasm.js';
async function run() {
await init();
console.log(greet("World"));
console.log("2 + 3 =", add(2, 3));
}
run();試してみよう
greet 関数を変更してカスタムメッセージを追加したり、multiply のような新しい関数を作ってみましょう。
試してみる
チャプタークイズ
すべての問題に正解してレッスンを完了しましょう