📌 Cargo

Cargo はパッケージ管理ツールです. パッケージ とは1つ以上のクレートを含んだものです.そして, クレート とはコードをまとめたもので,バイナリクレート(実行可能ファイル)とライブラリクレートの2つがあります.パッケージは複数のバイナリクレートを含めることができますが,ライブラリクレートは1つまでです. モジュール はクレートの中でグループ化されたコードのことで,読みやすさと再利用性を高めるためのものです.また,アクセス制御を設定することができ,内部の実装を利用できなくすることもできます.

🔹 cargo initコマンド

cargo initコマンドを使うと,実行したフォルダ内に,単一のバイナリクレートを含んだパッケージの作成環境が作られます.

cargo init

実行すると次のような構成になります.

(workspace)
├─ src
│   └── main.rs
├── Cargo.toml
└── .gitignore 

Cargo.toml は構成ファイルです. src/main.rsクレートルート です.このファイルがモジュール構造の起点となります.

🔹 cargo buildコマンド

cargo buildコマンドを実行するとビルドが始まります.Cargo は必要な外部パッケージなどを自動でダウンロードしてビルドします.依存する外部パッケージは Cargo.toml に記述し,実際にダウンロードしたパッケージのバージョンを Cargo.lock ファイルに書き込みます.

cargo build
または
cargo b

🔹 cargo runコマンド

cargo runコマンドを実行すると,作成した実行可能ファイルを起動します.ビルドが必要な場合は自動的にビルドしてくれます.

cargo run
または
cargo r

cargo buildコマンド, cargo run コマンドは標準でデバッグ情報付き実行可能ファイルを作成します.--releaseオプションをつけることで,リリース用の実行可能ファイルを作成できます.また,Rust にはプロファイルというものがあり,devrelease があります. --release オプションは release プロファイルを使用することを明示するものです.このプロファイルをカスタマイズdできます.例えば,最適化オプションなどです.詳しくはドキュメントを参照してください.

cargo build
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
cargo build --release
    Finished release [optimized] target(s) in 0.0 secs

🔹 cargo checkコマンド

cargo checkコマンドはコンパイルチェックをします. cargo build コマンドとは違ってリンクを行わないので,コンパイルが通るかのチェックはこちらのほうが早いです.

cargo check
または
cargo c

🔹 cargo addコマンド(外部パッケージ)

外部パッケージを使用したい場合は, Cargo.tomldependencies セクションに使用したいパッケージを指定します.例えば rand パッケージを使う場合は次のようにします:

[dependencies]
rand = "0.8.0"

または cargo addコマンドを使えます.

cargo add rand

🔹 cargo treeコマンド

現在のパッケージ構成を確認したい場合は以下のコマンドを使います:

cargo tree

🔹 cargo install[uninstall]コマンド

バイナリパッケージをインストールできます.その場合は install コマンドを使います.

cargo install <package>

また、cargo uninstallコマンドでアンインストールができます.