概要
Rust はメモリ安全性・速度・並行性の点で優れたプログラミング言語です。C や C++ と同じくシステムプログラミング言語としての側面を持ちながら、高性能な Web サーバーや API を開発することができ、バックエンド開発のための言語としても利用することができます1。
今回は記事執筆時(2023/10/15) macOS で Rust の開発環境を整えるための手順を解説させていただきます。
この記事を読んでわかること
- macOS で Rust の環境構築をする方法
-
cargo
コマンドとそれらに付随するコマンドの基本的な使い方 - Rust のプロジェクト作成・実行方法
- VSCode で Rust の開発環境を整える方法
対象読者
- Rust に初めて触れる開発者
- 他の言語である程度の開発経験がある開発者
前提知識・環境
-
brew
コマンドの基本的な使い方 - VSCode の基本的な使い方
- Intel macOS Sonoma v14.0
1. Rust の開発環境の構築
1.1. rustup-init
コマンドのインストール
Rust では cargo
, rustc
, rustdoc
, rustup
コマンドを用いて開発を行います。
これらのコマンドをまとめて使えるようにするための rustup-init
コマンドを Homebrew からインストールします。
brew install rustup-init
上記のコマンドを実行後、シェルを再起動してもらえれば rustup-init
コマンドが使えるようになります。rustup-init
コマンドを実行します。
rustup-init
実行後、下記の3択から選ぶように入力を求められます。今回はデフォルトの 1 で環境構築を行います。1 を入力して Enter キーを押して下さい。
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
> 1
再びシェルを再起動してもらえれば、cargo
, rustc
, rustdoc
, rustup
コマンドが使用できるようになっているはずです。確認のためにそれぞれのバージョンを見てみます。
# cargo のバージョン確認
cargo --version
# rustc のバージョン確認
rustc --version
# rustdoc のバージョン確認
rustdoc --version
# rustup のバージョン確認
rustup --version
それぞれのコマンドを実行してバージョンが表示されれば準備完了です。
1.2. 各コマンドの基本的な使い方
1.2.1. cargo
コマンド
cargo
は Rust のコンパイルマネージャー兼パッケージマネージャーです。プロジェクトの作成・プログラムのビルド・ライブラリの管理などを担います。
# プロジェクトの新規作成
cargo new (プロジェクト名)
# カレントディレクトリでプロジェクトを作成
cargo init
# プログラムの実行
cargo run
# テストの実行
cargo test
# ビルドの実行
cargo build
# パッケージのインストール
cargo install (パッケージ名)
# パッケージのアンインストール
cargo uninstall (パッケージ名)
Node.js の npm
コマンドのように使用できますね。
1.2.2. rustc
コマンドの使い方
rustc
は Rust のコンパイラです。基本的には cargo
を使ったビルドの過程でコンパイルが自動的に行われますが、rustc
を使って直接コンパイルすることもできます。
# rustc によるコンパイル
rustc (ファイルのパス)
1.2.3. rustdoc
の使い方
rustdoc
は Rust のドキュメンテーションツールです。ドキュメントの作成に用いられますが、cargo doc
で同様の操作が行えるため、直接実行することは少ないかもしれません。
# rustdoc によるドキュメントの生成
rustdoc (ファイルのパス)
1.2.4. rustup
コマンド
rustup
コマンドは Rust のアップデートを行う際に使用します。
# Rust のツールチェーンすべてのアップデート
rustup update
# Rust の安定版へのアップデート
rustup update stable
# Rust の Nightly 版へのアップデート
rustup update nightly
# Rust のデフォルトのツールチェーンの設定
rustup default stable
Node.js の nvm
や nodenv
のような役割を担っていますね。
以上が Rust の開発における基本的なコマンドの使い方です。おおよそコマンドについての理解が得られたところで、プロジェクトの作成と実行を試してみます。
2. Rust プロジェクト作成・実行
Rust でのプロジェクトの作成方法は 2 通りあります。
カレントディレクトリ直下にプロジェクトを作成する場合は cargo new (プロジェクト名)
を実行します。今回はプロジェクト名を rust-project
として作成します。
cargo new rust-project
また、カレントディレクトリ自体をプロジェクトとする場合は cargo init
コマンドを実行します。
mkdir rust-project
cd rust-project
cargo init
ディレクトリ内で、同名のプロジェクトが既に存在したり、公式のパッケージ名として使用されている場合はエラーが出てプロジェクトの作成に失敗します。
上記いずれかの方法でプロジェクトを作成し、rust-project
ディレクトリ内で src/main.rs
に Hello, world!
を出力する Rust のプログラムが生成されます。
fn main() {
println!("Hello, world!");
}
プロジェクト内の任意のディレクトリで下記のコマンドを実行するとターミナルに Hello, world!
が表示されます。
cargo run
これでプロジェクトの作成を行って、プログラムを実行するまでの流れが完了です。
3. Rust の開発で役立つ VSCode の拡張機能
最後に VSCode で Rust の開発を行うときに役立つ拡張機能の紹介をして締めくくらせていただきます。Rust の開発元から公式で出ている rust-analyzer というプラグインがおすすめです。
これさえインストールしておけば、コードのシンタックスハイライト・スニペットの表示・コードのフォーマットなど一通りのことはやってくれます。
フォーマットをする際は、VSCode で ⌘ Shift P
でコマンドパレットを開き Format Document
と入力して下さい。フォーマットに rust-analyzer を選択すれば変更を保存したときに自動でフォーマットしてくれるようになります。
最後まで読んでくださりありがとうございました。
今回はこれから Rust を使って開発を行う人向けに基本的な環境構築の方法を解説させていただきました。筆者自身、記事執筆時点では Rust に触れて間もないためまだまだ勉強しなくてはなりません。Rust の開発で学んだことは随時記事にさせて頂こうと思います。