Rust

2025年版 Rust と WebAssembly ツールチェーンのインストールとビルド手順

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


Contents

スポンサードリンク

2025 年版 Rust → WebAssembly 開発環境の構築ガイド

このドキュメントは、Windows・macOS・Linux 各プラットフォームで必要なツールチェーンを最新状態に揃える手順をまとめたものです。
同じ作業が繰り返し記述されている箇所は共通セクションへ統合し、全体の可読性と保守性を高めました。また、公式ドキュメントに準拠したコマンド表記や、Linux の apt 系で binaryen がパッケージ化されていない場合の代替インストール手順も追記しています。


共通ツールチェーンインストール手順

このセクションでは、Rustup 本体と WebAssembly 用サブツールwasm-bindgen-cliwasm-pack)のインストール方法を共通化しています。各 OS のパッケージマネージャで Rustup を導入したら、以下のコマンドで必須クレートを取得してください。

rustup と Cargo ツールチェーンのインストール

OS コマンド例
Windows (scoop) scoop install rustup
Windows (Chocolatey) choco install rustup.install -y
macOS (Homebrew) brew install rustup-init && rustup-init -y
Linux (apt / pacman) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

インストール後はシェルを再読み込みし、デフォルトツールチェーンを stable に設定します。

WebAssembly 用ターゲットとサブツールの取得

バージョン確認

すべてのツールが正しく導入されたかを確認するため、以下コマンドを実行してください。エラーが出なければインストールは完了です。


Windows のセットアップ

Windows 環境では scoop または Chocolatey が一般的です。ここでは、どちらのパッケージマネージャでも同等に動作する手順を示します。

前提条件とインストール概要

まずは rustupbinaryenwasm-opt を提供)をそれぞれのマネージャで導入し、共通ツールチェーンの設定へ進みます。以下のコマンドは管理者権限が不要な scoop の例です。

scoop を使用する場合

Chocolatey を使用する場合

バージョン確認(再掲)


macOS のセットアップ

macOS では Homebrew がデファクトスタンダードです。公式ドキュメントに合わせ、rustup-init を Homebrew 経由で取得し、インタラクティブなし自動設定を行います。

Homebrew によるインストール手順

バージョン確認(macOS 共通)


Linux のセットアップ(apt / pacman)

Linux ではディストリビューションごとにパッケージ管理方式が異なります。本稿では Ubuntu/Debian 系 (apt)Arch 系 (pacman) を対象に手順を示し、binaryen が公式リポジトリに無い環境への代替インストール方法も解説します。

前提条件と共通インストールフロー

  1. 必要な開発ツールと curl をインストール
  2. rustup のスクリプト実行で Rust ツールチェーンを取得
  3. ターゲット追加・サブツール導入は 共通セクション と同様

以下、OS 別に細分化しています。

apt 系 (Ubuntu / Debian)

pacman 系 (Arch Linux / Manjaro)

バージョン確認(Linux 共通)


Rust と WebAssembly ターゲットの基本設定

この章では、WebAssembly 用ターゲットの追加必須クレートの記述 方法を解説します。正しく設定しておくことで、後続のビルドやデバッグがシームレスに行えるようになります。

ターゲット追加(全プラットフォーム共通)

Cargo.toml に必要な依存関係を記述

2025 年時点での最新版は wasm-bindgen 0.2.92 が推奨です。プロジェクトルートの Cargo.toml に以下を書き込みます。

#[wasm_bindgen] アトリビュートの基本

#[wasm_bindgen] マクロは Rust 側の関数や構造体を JavaScript から呼び出せるようにラップします。最小サンプルは次の通りです。

  • pub が必須で、外部からアクセス可能になります。
  • 引数・戻り値は String&str、整数型など wasm-bindgen が自動変換できる型 に限定してください。

この関数をビルドすれば、ブラウザ上の JavaScript から greet("World") と呼び出せます。


プロジェクト作成とデバッグビルド

実際にコードを書きながら デバッグビルド を行う手順を紹介します。パニック時にスタックトレースがコンソールへ出力されるよう設定することがポイントです。

1. プロジェクトの雛形生成

Cargo.toml に先ほど示した wasm-bindgen と、デバッグ時に便利な console_error_panic_hook を追加します。

2. エントリポイントでパニックフックを有効化

src/lib.rs に以下コードを書き込みます。#[wasm_bindgen(start)] はモジュールがロードされた瞬間に実行され、フック設定だけでなく初期化処理も書けます。

3. デバッグビルドの実行

4. wasm-bindgen による JavaScript バインディング生成

./pkg ディレクトリに my_wasm.jsmy_wasm_bg.wasm が生成されます。

5. ローカルサーバで確認

次章「ローカルテスト・デプロイ」で紹介する軽量サーバを起動し、ブラウザのコンソールで greet("Rust") を呼び出すと期待通りの文字列が表示されます。パニックを意図的に発生させれば、console_error_panic_hook がスタックトレースを出力することも確認できます。


リリースビルドと最適化フロー

本番環境向けには サイズ削減実行速度の最大化 が求められます。以下では cargo build --release に続くバイナリ最適化手順を詳述します。

1. リリースビルド

2. wasm-bindgen バインディング生成(リリース版)

3. binaryen の wasm-opt -Oz によるサイズ圧縮

-Oz は「サイズ優先」の最高圧縮モードです。最適化前後のファイルサイズ比較例を表に示します。

ビルド種別 ファイル名 サイズ (2025‑03 時点)
デバッグ my_wasm_bg.wasm 182 KB
リリース未圧縮 my_wasm_bg.wasm (release) 94 KB
リリース + 圧縮 my_wasm_opt.wasm 58 KB

38% のサイズ削減が実現でき、ロード時間の短縮につながります。

4. wasm-pack を使ったワンステップビルド

wasm-pack は npm パッケージ化まで自動で行える便利ツールです。リリースモードで最適化済みバイナリを生成する例は次の通りです。

生成される pkg/ の構成は以下のようになります。

このディレクトリをそのまま npm publish すれば、他プロジェクトで import * as wasm from "my_wasm" と利用できます。


ローカルテスト・デプロイ・CI/CD の実践

ビルドが完了したら、ローカル環境で動作確認し、続いて自動化パイプラインへ組み込む流れを解説します。ここまでの手順が正しく機能すれば、数分で本番デプロイが可能です。

1. ローカルサーバで動作確認

静的ファイルだけで完結する軽量サーバは以下のいずれかで起動できます。どちらも追加インストール不要(Node.js が必要なのは serve のみ)です。

方法 コマンド例
Node.js の serve (npm 必要) npm install -g serve && serve ./pkg --single
Python 標準モジュール cd pkg && python -m http.server 8000

ブラウザで http://localhost:8000 にアクセスし、コンソールに Hello, … と表示されれば成功です。デバッグビルドの場合は意図的にパニックを起こすコードを書き、console_error_panic_hook がスタックトレースを出力することも確認してください。

2. GitHub Actions による自動ビルド・最適化

以下は Ubuntu ランナー 上で実行されるシンプルな workflow の例です。binaryen が apt に無い環境でも代替インストールを行うステップが含まれています。

この workflow は コードプッシュ → ビルド → バインディング生成 → サイズ圧縮 までを自動化し、pkg/ ディレクトリをアーティファクトとして保存します。

3. 静的ホスティングへのデプロイ例

方法 手順の要点
SFTP scp -r pkg/* user@host:/var/www/site で直接アップロード。サーバ側は静的ファイルを配信できるように設定だけで完了。
Netlify GitHub リポジトリと連携し、netlify.tomlpublish = "pkg" を記載すればプッシュ時に自動デプロイ。
Vercel vercel --prod 実行後、vercel.json"outputDirectory": "pkg" でビルド成果物を指定。

いずれの場合も配信対象は pkg/ ディレクトリだけ に限定することで、余計なファイルが混入せず最小サイズで公開できます。


次のステップ

  1. 本記事の手順通りにサンプルプロジェクトをローカルでビルドし、デバッグ版とリリース版のサイズ・実行速度差異を体感してください。
  2. GitHub Actions の workflow を有効化すれば、push → ビルド → デプロイ が自動化され、継続的に最適化された Wasm が生成されます。
  3. さらに高度な最適化が必要なら、wasm-pack build --scope your-org --mode no-installrollup-plugin-wasmwebpack wasm-loader といったエコシステムツールを組み合わせてコード分割や JavaScript バンドラとの統合を検討してください。

以上の流れを踏めば、2025 年版ツールチェーンに完全対応した Rust → WebAssembly 開発フロー が確立できます。実務プロジェクトでも個人学習でも、ぜひ本手順を活用して高速かつ軽量な Web アプリケーションを構築してください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


-Rust