Rust

Rust と WebAssembly 開発環境の構築手順と CI/CD 完全ガイド

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

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

開発環境のインストール

1. rustup の導入

公式インストーラをシェルから実行します。

インストールが完了したら、バージョンを確認してください(2026 年 4 月現在の最新版は rustc 1.76.0 (2025‑10‑10))。

OS 推奨インストール方法
Windows PowerShell で上記コマンド、または rustup-init.exe を公式サイトからダウンロード
macOS 上記 curl コマンド、もしくは Homebrew (brew install rustup-init)
Linux 同上の curl コマンドが最もシンプル

2. 必要なコンポーネントの確認

  • rustc
  • cargo
  • rust-std(標準ライブラリ)

不足しているものは rustup component add <name> でインストールできます。


WASM 用ターゲットの追加

Rust のコードを WebAssembly にコンパイルするために、wasm32-unknown-unknown ターゲットを追加します。

インストール後は以下で確認できます。

ポイント
wasm32-unknown-unknown は「純粋」なバイナリを生成します。ブラウザだけでなく、Node.js や Cloudflare Workers でもそのまま実行できます。


wasm-packwasm-bindgen の導入

wasm-pack

wasm-pack は Cargo プロジェクトのビルド・テスト・公開を一括で管理できるツールです。公式リポジトリ(https://github.com/rustwasm/wasm-pack)から最新版を取得します。

インストール後、バージョンは次のように確認できます。

wasm-bindgen

wasm-bindgen は Rust と JavaScript の相互運用を支援するクレートです。プロジェクトの Cargo.toml に次のように記述します。

参考情報
MDN Web Docs の「Rust → Wasm ガイド」でも、wasm-packwasm-bindgen の組み合わせが推奨されています(2024 年版の記述を踏襲)。


Cargo プロジェクトの作成とサンプルコード

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

--lib オプションにより、WASM 用のライブラリクレートが作成されます。

2. 実装例:文字列逆転とフィボナッチ

3. テストの実行


フロントエンドへの組み込みとローカルテスト

1. ビルド(Web ターゲット)

--target web はブラウザ向けの ES モジュール形式で生成します。

2. Vite プロジェクトの作成

src/main.js に WASM パッケージを組み込む

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

ブラウザのコンソールに期待した出力が表示されれば成功です。
デバッグは Chrome DevTools の Sources タブから .wasm ファイルを確認できます。


GitHub Actions を使った CI/CD パイプライン

以下は 2026 年版の公式ドキュメント(https://rustwasm.github.io/wasm-pack/tutorials/github-actions.html)に基づくサンプルです。

補足ポイント

プラットフォーム 主な設定項目 注意点
GitHub Pages publish_dir に Vite の dist/ を指定 .wasm の MIME type が自動で application/wasm になるが、CORS が必要ならヘッダーを追加
Cloudflare Workers wrangler publish コマンド実行 Workers KV と組み合わせる場合はキャッシュ TTL を適切に設定
Netlify netlify deploy --dir=dist _redirects で SPA ルーティングを有効化し、.wasm の MIME type が正しく配信されているか確認

WIT と wasm-tools による次世代コンポーネントモデル(オプショナル)

WebAssembly Interface Types(WIT)は、言語間の型安全なインターフェースを標準化する試みです。Rust エコシステムでは wit-bindgen クレートと wasm-tools CLI が提供されています。

  • WIT ファイル (example.wit) に関数シグネチャや構造体を記述
  • wit-bindgen で Rust のバインディングコードを自動生成
  • wasm-tools component new でコンポーネント形式の .wasm を作成

現時点(2026 年)ではプレビュー段階ですが、主要フレームワーク(React, Svelte, Yew 等)が順次サポートを拡充しています。公式リポジトリと MDN の「WebAssembly Interface Types」ページをご参照ください。


まとめと次のステップ

  1. 開発環境
  2. rustupwasm32-unknown-unknown ターゲットだけで即座に開始可能。
  3. ビルドツールチェーン
  4. wasm-pack + wasm-bindgen が提供するコマンド一式で、ローカルテスト・パッケージ化・公開までシームレスに行える。
  5. サンプルコード
  6. 文字列逆転とフィボナッチ計算は、WASM のデータ受け渡しの基本を学ぶ最適教材。
  7. フロントエンド統合
  8. Vite と組み合わせることで、開発サーバで即時に結果確認が可能。
  9. CI/CD
  10. GitHub Actions のテンプレートに従えば、ビルド・アーティファクト保存・GitHub Pages への自動デプロイまでワンパイプラインで完結。
  11. 次世代コンポーネント(任意)
  12. WIT と wasm-tools を活用すれば、言語横断的なモジュール再利用が容易になる。

今すぐやってみよう

ブラウザで http://localhost:5173 を開き、コンソールに正しい結果が出力されれば環境構築は完了です。

次のステップとして WITwasm-tools に挑戦し、複数言語間で安全にインターフェースを共有できるモジュール化を体験してください。

Happy coding! 🚀

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Rust