はじめに
本連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。前回記事では、WebAssemblyに至るまでのWebフロントエンド高速化の歴史を紹介するとともに、RustでWebAssemblyを実装する大まかな流れを説明しました。
本記事では、WebAssemblyの実装で必要となるRust言語の基礎を説明していきます。
対象読者
- 話題のRust言語について学びたい方
- 動的なWebページにさらなる速度を求める方
- WebAssemblyに興味があるが、Rustのハードルが高いと思っている方
必要な環境
本記事のサンプルコードは、以下の環境で動作を確認しています。
- Windows 10 64bit版
- rustup 1.24.3
- cargo 1.55.0
サンプルコードを実行するには、サンプルのフォルダーで「cargo run」コマンドを実行します。
Rustプロジェクトの生成・実行手順
本記事では、WebAssemblyではなく、ローカルPCで実行できるプログラムを生成するRustのプロジェクトを用いて、Rust言語を説明していきます。最初に、このプロジェクトを作成して実行する手順を説明します。Rustの開発環境をインストールしていない場合、前回記事を参考にインストールしてください。
開発環境の一部としてインストールされる「cargo」コマンドは、Rustのプロジェクト作成やビルド、コードチェックなどを行える、Rust開発の必須ツールです。リスト1の「cargo init」コマンドを実行すると、Rustのプロジェクトを作成できます。
cargo init <プロジェクト名>
生成されたプロジェクトは、図1のディレクトリ構造を持っています。処理を実装するソースコードはsrc/main.rsファイルです。
![図1 Rustプロジェクトの構造(p001-init)](http://cz-cdn.shoeisha.jp/static/images/article/15083/15083_1.png)
図1 Rustプロジェクトの構造(p001-init)
main.rsにはリスト2の内容が記述されています。(1)の「fn main()」はいわゆるmain関数で、ここから処理がスタートします。(2)のprintln!文で文字列をコンソールに出力します。行末にはセミコロン(;)を記述します。
fn main() { // main関数(1) println!("Hello, world!"); // 「Hello, world!」とコンソールに出力 ...(2) }
プロジェクトを実行するには、プロジェクトのフォルダーで「cargo run」コマンドを実行します。すると、ソースコードが自動的にビルドされて、その後実行されます。
![図2 「cargo run」コマンドでRustプロジェクトを実行した様子(p001-init)](http://cz-cdn.shoeisha.jp/static/images/article/15083/15083_2.png)
図2 「cargo run」コマンドでRustプロジェクトを実行した様子(p001-init)
なお、ビルドを行う「cargo build」、コードチェックを行う「cargo check」など、run以外のcargoコマンドについては、公式ドキュメントも参考にしてください。