Rust プログラミングを始める(rustc と cargo コマンド)

Rust 関連コマンドのインストール

Rust のインストール

Rust コンパイラ (rustc) や Rust 用のパッケージマネージャー (cargo) は、下記の公式サイトの手順で簡単にインストールできます。 推奨されている方法でインストールすると、Rust 関連のコマンドをアップデートするための rustup コマンドもインストールされます。

Rust のインストール方法の例(Linux/macOS の場合)
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

標準構成でインストールすると、Rust 関連の各コマンドが ~/.cargo/bin/ ディレクトリにインストールされます。

Rust 関連コマンドの一覧
$ ls ~/.cargo/bin
cargo*         clippy-driver* rust-lldb*     rustup*
cargo-clippy*  rls*           rustc*
cargo-fmt*     rust-gdb*      rustdoc*
cargo-miri*    rust-gdbgui*   rustfmt*

Rust のバージョンアップ

一度 rustup コマンドのインストールが済んでしまえば、上記の Rust 関連コマンド(Rust ツールチェイン)は次のようにまとめてアップデートできます。

Rust ツールチェインの更新
$ rustup update

Rust のアンインストール

Rust 関連コマンドを削除したいときも、rustup コマンドを使用します。 次のようにすると、rustup コマンドを含む、すべての Rust 関連コマンドがアンインストールされます($HOME/.cargo/bin ディレクトリも削除されます)。

Rust ツールチェインのアンインストール
$ rustup self uninstall

rustc コマンドで Rust コードをビルドする

次の main.rs ファイルは、Rust 言語の Hello World プログラムです。

main.rs
fn main() {
    println!("Hello, world!");
}

この main.rs ファイルをコンパイルするには、rustc コマンドを使用します。 デフォルトでは、.rs ファイルのベース名と同じ名前の実行ファイルが生成されます。

Rust コード (.rs) のコンパイル
$ rustc main.rs
$ ./main
Hello, world!

-o オプションで、生成する実行ファイル名を指定することもできます。

$ rustc -o hello main.rc
$ ./hello
Hello, world!

普段の開発では rustc コマンドを直接使うことは少なく、より包括的なパッケージングツールである cargo コマンドを使うのが一般的です。

cargo コマンドで Rust プロジェクトを作成する

Rust のデフォルトのビルドシステムである cargo コマンドを使用すると、依存ライブラリの管理や、プロジェクトのパッケージング処理を行うことができます。 Rust プロジェクトの開発は、通常、この cargo コマンドを使って進めることになります。

プロジェクトの作成 (cargo new/init)

cargo で新しいプロジェクト (cargo package) を作成するには、cargo new コマンドを使用します(既存のディレクトリを使う場合は、cargo init コマンドを使用します)。

Rust プロジェクトの新規作成
$ cargo new hello
     Created binary (application) `hello` package

このように実行すると、新規プロジェクト用の hello ディレクトリが生成されます。 この中には、Rust プロジェクトの設定ファイルである Cargo.toml や、プログラムのエントリポイントとなる src/main.rs ファイルが含まれています。 また、Git リポジトリとしての初期化も済んでおり、すぐに git commit していけるようになっています。

hello/
├── .git/
├── .gitignore
├── Cargo.toml
└── src/
    └── main.rs

ビルドと実行 (cargo run/build)

プロジェクトのディレクトリ内で、cargo run コマンドを実行することで、プログラムを実行することができます。

プロジェクトのビルドと実行
$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `target/debug/hello`
Hello, world!

cargo のログ出力を抑制するには、-q (--quite) オプションを追加します。

$ cargo run -q
Hello, world!

ログ出力から分かるように、内部的にビルドされてできたプログラムは、target ディレクトリ以下に配置されます。 デフォルトではデバッグモードでビルドされるので、target/debug/<実行ファイル名> というパスで実行ファイルが生成されます。 -r (--release) オプションを付けてリリースモードでビルドすると、target/release/<実行ファイル名> というパスに生成されます。

ビルド関連の cargo サブコマンドには、次のようなものがあります。

コマンド説明
cargo cleantarget ディレクトリの削除
cargo buildビルド(debug モード)
cargo build -rビルド(release モード)
cargo runビルド&実行(debug モード)
cargo run -rビルド&実行(release モード)

これで、Rust でプログラミングを始める準備が整いました!

٩(๑❛ᴗ❛๑)۶ わーぃ