wasm-pack とは|Rust のコードをブラウザ向けのパッケージにするツール
wasm-pack は、Rust で書いたコードをブラウザの中で動く形式に変換し、JavaScript から呼べるパッケージにまとめるコマンドのツールです。まとめたものは npm の登録簿へ公開できます。
- 分類
- ビルド・配信・ストア提出の補助
- 制作の流れ
- リリース
- 日本語対応
- 日本語非対応
- 費用
- 無料(Apache-2.0 と MIT の2つ)
- 公式サイト
- https://wasm-bindgen.github.io/wasm-pack/確認日 2026-09-18
wasm-pack の概要
wasm-pack(ワズムパック)は、Rust で書いたコードをブラウザの中で動く形式に変換し、JavaScript から呼べるパッケージにまとめるコマンドのツールです。公式サイトは、掲げる一文を「your favorite rust -> wasm workflow tool!(お気に入りの、Rust から wasm への作業のツール)」としています。
このツールが目指すのは、Rust から作った WebAssembly を、ブラウザや Node.js で JavaScript と行き来させながら扱うための1か所になることです。作ったパッケージは npm の登録簿へ公開でき、webpack のように、すでに使っている作業の流れの中で、ほかの JavaScript のパッケージと並べて使えます。
WebAssembly とは
WebAssembly は、ブラウザの中で機械に近い形のプログラムを動かすための形式です。ブラウザでそのままは動かない言語で書いたものを、この形に変換して動かします。
公式のリポジトリは、この企画を ashleygwilliams が始め、いまは drager が保守していると書いています。
wasm-pack の特徴
wasm-pack はゲームを描く機能を持ちません
wasm-pack が受け持つのは、Rust のコードをブラウザ向けの形にまとめて配れるようにする部分です。ゲームの中身は、Rust 側と JavaScript 側で作り手が組みます。
wasm-pack の4つの命令
公式のリポジトリは、命令を4つ挙げています。
| 命令 | 何をするか |
|---|---|
new |
雛形から新しい Rust と wasm の企画を作ります |
build |
Rust のクレートから、npm 向けの wasm のパッケージを作ります |
test |
ブラウザでの試験を走らせます |
pack と publish |
パッケージを1つの書庫にまとめ、登録簿へ公開します |
記録の出し方も決まっていて、RUST_LOG という環境変数で細かさを変えます。
wasm-pack が作るもの
wasm-pack build は pkg というフォルダを作ります。中に入るのは、wasm の実行ファイル、JavaScript の包み、README、そして package.json です。このフォルダは組み立ての結果なので、既定で版の管理の対象から外されます(--no-gitignore で戻せます)。
書き出し先の名前は --out-dir、ファイル名の頭は --out-name で変えられます。
wasm-pack の書き出しの当て先
--target を変えると、書き出される JavaScript と、wasm の読み込み方が変わります。
| 当て先 | 書き出されるもの |
|---|---|
指定なし/bundler |
webpack のようなまとめ上げのツールと組み合わせる形。package.json の module の鍵を使います |
nodejs |
require で読み込む形(CommonJS のモジュール)。package.json の main の鍵を使います |
web |
ブラウザで ES のモジュールとしてそのまま読み込める形。wasm の読み込みは自分で書きます |
no-modules |
web と同じくブラウザ向けですが、ページに直に置いて全体の状態を変える形です。web ほど多くの機能には対応していません |
deno |
Deno で ES のモジュールとしてそのまま読み込める形 |
wasm-pack の組み立ての構え
build には3つの構えがあります。何も指定しなければ --release になります。
| 構え | 不具合の検出 | 不具合を追う情報 | 最適化 | 公式ドキュメントが挙げる使いどころ |
|---|---|---|---|---|
--dev |
あり | あり | なし | 開発と不具合の追跡 |
--profiling |
なし | あり | あり | 処理の速さを測って調べるとき |
--release |
なし | なし | あり | 本番へ出すとき |
このほか、--scope でパッケージ名に所属の印を付けられます。--mode では、wasm-bindgen を入れずに組み立てるかどうかを選べます。cargo build にそのまま渡したい指定は、命令の末尾に足します。
wasm-pack を使う前に要るもの
公式ドキュメントは、先に wasm-pack 本体を入れて wasm-pack -V で版が出ることを確かめ、次に Rust を入れて rustc -V が 1.30.0 以上を返すことを確かめるよう書いています。npm へ公開するなら、npm も入れて設定します。
公式サイトの配布の入口は、2026年5月14日に出た 0.15.0 を案内しています。
wasm-pack の費用とライセンス
wasm-pack は無料です。公式のリポジトリは、ライセンスを Apache-2.0 と MIT の2つとしています。
MIT ライセンス(MIT License)は、著作権の表示とライセンス文を残せば、商用も含めて自由に使ってよいとする短い決まりです。
| 項目 | 内容 |
|---|---|
| 費用 | 無料 |
| ライセンス | Apache-2.0 と MIT の2つ |
| 版 | 0.15.0(2026年5月14日) |
| 前提 | Rust 1.30.0 以上 |
| 保守しているところ | drager(企画を始めたのは ashleygwilliams) |
公式の資料の置き場は動いています。rustwasm.github.io/docs/wasm-pack/ の頁には、その場所ではもう保守していないという断りが入り、いまの置き場として wasm-bindgen.github.io/wasm-pack/ が案内されています。公式のリポジトリの所在も wasm-bindgen/wasm-pack に変わっています。
- wasm-pack|公式サイトhttps://wasm-bindgen.github.io/wasm-pack/
情報源
- wasm-pack — 公式サイト(掲げている一文・配布の入口・版の番号と日付)https://wasm-bindgen.github.io/wasm-pack/確認日 2026-09-18
- wasm-bindgen/wasm-pack — 公式リポジトリ(この道具が目指すところ・4つの命令・記録の出し方・ライセンス・保守しているところ)https://github.com/wasm-bindgen/wasm-pack確認日 2026-09-18
- build — wasm-pack 公式ドキュメント(`pkg` フォルダの中身・書き出し先の指定・5つの当て先・3つの構え・追加の指定)https://wasm-bindgen.github.io/wasm-pack/book/commands/build.html確認日 2026-09-18
- Prerequisites — wasm-pack 公式ドキュメント(先に入れるもの・Rust の版の下限・資料の置き場が変わった断り)https://rustwasm.github.io/docs/wasm-pack/prerequisites/index.html確認日 2026-09-18