Mac に Rust 環境を作る
August 28, 2022
インストールからプログラムの実行まで、さくっと試してみましょう。
インストール #
インストールに関する公式ドキュメントは以下です。公式は rustup
というツールを直接ダウンロードする方法を第一に推奨しているようです。
- Install Rust - Rust Programming Language
ただし、他のインストール方法についても次のページにまとめられています。
- Other Installation Methods - Rust Forge
こちらのページでは Homebrew でのインストールも紹介されています。私は可能な限り Homebrew に紐づけて管理したいと思っているため、Homebrew 経由で導入することにします。
*注意:rust
ではなく rustup-init
をインストールしてください。
- rustup-init — Homebrew Formulae
brew install rustup-init
インストールが終わったら以下のコマンドを実行します。
rustup-init
すると次のメッセージが表示されます。
Welcome to Rust!
This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.
Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:
/Users/[your-user-name]/.rustup
This can be modified with the RUSTUP_HOME environment variable.
The Cargo home directory is located at:
/Users/[your-user-name]/.cargo
This can be modified with the CARGO_HOME environment variable.
The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:
/Users/[your-user-name]/.cargo/bin
This path will then be added to your PATH environment variable by
modifying the profile files located at:
/Users/[your-user-name]/.profile
/Users/[your-user-name]/.zshenv
You can uninstall at any time with rustup self uninstall and
these changes will be reverted.
Current installation options:
default host triple: x86_64-apple-darwin
default toolchain: stable (default)
profile: default
modify PATH variable: yes
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>
インストール方法を選択するように求められています。デフォルトの 1
で回答します。
その後 Rust is installed now. Great!
が表示されていれば完了です。
ターミナルを開き直して、下記のコマンドを実行します。無事にインストールできていれば結果が返ってきます。
rustup --version
rustc --version
cargo --version
プロジェクト作成そして Hello, World! #
以下を実行します。
cargo new hello_rustaceans
cd hello_rustaceans
cargo run
コンソールに Hello, world!
が表示されるはずです。
プロジェクトフォルダを開いてみると、次のコードが確認できます。
src/main.rs
fn main() {
println!("Hello, world!");
}
FizzBazz プログラム #
今度は src/main.rs
を次のように書き換えて FizzBazz プログラムを実行してみます。
fn main() {
for i in 1..100 {
if i % (3 * 5) == 0 {
println!("Number is {i} FizzBazz");
} else if i % 3 == 0 {
println!("Number is {i} Fizz");
} else if i % 5 == 0 {
println!("Number is {i} Bazz");
} else {
println!("Number is {i}");
}
}
}
ターミナルで cargo run
を実行します。
Number is 1
Number is 2
Number is 3 Fizz
Number is 4
Number is 5 Bazz
Number is 6 Fizz
Number is 7
Number is 8
Number is 9 Fizz
Number is 10 Bazz
Number is 11
Number is 12 Fizz
Number is 13
Number is 14
Number is 15 FizzBazz
......
...
ライブラリを使用したプログラム #
次のライブラリを使用してみます。
- ferris-says - crates.io: Rust Package Registry
Cargo.toml
に以下を追加します。
[package]
name = "hello_rustaceans"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ferris-says = "0.2" # 追加
そして src/main.rs
を次のように編集します。
extern crate ferris_says;
use ferris_says::say;
use std::io::{ stdout, BufWriter };
fn main() {
let out = b"Hello fellow Rustaceans!";
let width = 24;
let mut writer = BufWriter::new(stdout());
say(out, width, &mut writer).unwrap();
}
それからターミナルで cargo run
を実行します。
__________________________
< Hello fellow Rustaceans! >
--------------------------
\
\
_~^~^~_
\) / o o \ (/
'_ - _'
/ '-----' \
Ferris ちゃんです。Rust の(非公式)キャラクターです。
- Rustacean.net: Home of Ferris the Crab
その他ツールのインストール #
ここまででプログラムの実行環境は整備されました。
あとは必要に応じて便利ツールを導入していきます。
なお、各ツールの説明は次の記事が詳しいです。あわせてご参照ください。
- macOS で Rust のローカル開発環境を整えるための手順 2022 - Qiita
rustup component の追加 #
フォーマッタを追加します。rustfmt
です。
- rust-lang/rustfmt: Format Rust code
rustup component add rustfmt
リンタを追加します。Clippy
です。
- rust-lang/rustfmt: Format Rust code
rustup component add clippy
確認として、次のコマンドを実行すると現在インストールされている component が表示されます。
rustup component list
crates の追加 #
ここはお好みで取捨選択して良いですが、とりあえずすべて入れてしまって良いと思います。
パッケージをインストールする方法を簡略化します。cargo-edit
です。
これを使うと、node.js でいう npm install something
のようにパッケージを追加できるようになります。
- cargo-edit - crates.io: Rust Package Registry
cargo install cargo-edit
ソースコードの変更を検知して特定のコマンドを実行できるようにします。cargo-watch
です。
コードを修正したら自動でビルド、コードを修正したら自動でテスト、といったことができるようになります。
cargo install cargo-watch
確認として、次のコマンドを実行すると現在インストールされている crates が表示されます。
cargo install --list
VS Code 拡張機能・設定 #
- 参考:Rust with Visual Studio Code
エディタとして VS Code を使う場合はこちらの拡張機能を入れると良いでしょう。
コード補完やジャンプ、未使用の変数の検知など、もろもろのインテリセンスが有効になります。rust-analyzer
です。
- rust-analyzer - Visual Studio Marketplace
デバッグができるようになります。CodeLLDB
です。
- CodeLLDB - Visual Studio Marketplace
TOML ファイルのシンタックスハイライトを有効にします。 Better TOML
です。
- Better TOML - Visual Studio Marketplace
その後、お好みで settings.json
を編集します。
{
// rust-analyzer が表示する型情報を非表示にする
// ただし control + option (Mac) を押しているときのみ表示する
"editor.inlayHints.enabled": "offUnlessPressed",
// rust-analyzer のリンタとして(デフォルトの check ではなく) clippy を使用する
"rust-analyzer.checkOnSave.command": "clippy",
// コード保存時に自動整形する
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer"
}
}
おわり #
これで環境整備は完了です。あとは Rust をどっぷり勉強しましょう。
- Learn Rust - Rust Programming Language