
- バージョン確認
- cargo new
- cargo init
- プロジェクトレイアウト
- cargo build
- cargo run
- cargo check
- cargo test
- cargo fix
- cargo doc
- cargo clean
- cargo search
- cargo add
- cargo update
- cargo tree
- cargo install / uninstall
- cargo publish
Cargo は Rust のビルドシステム兼パッケージマネージャ
バージョン確認
cargo --version
コマンドのヘルプは以下で確認できる
cargo help <subcommand>
Cargo のアップデートは rustup でRustツールチェーン自体をアップデートする
rustup update
cargo new
新しいプロジェクトを作成
cargo new hello_world cd hello_world
ディレクトリが既に存在する場合は cargo init を利用する
--libライブラリクレート用のプロジェクトとなりsrc/lib.rsが生成される--vcs nonegit リポジトリの生成が不要な場合
cargo init
現在ディレクトリにプロジェクトを作成
mkdir my_project cd my_project cargo init
プロジェクトレイアウト
.
├── Cargo.lock
├── Cargo.toml
├── src/
│ ├── lib.rs
│ ├── main.rs
│ └── bin/
│ ├── named-executable.rs
│ ├── another-executable.rs
│ └── multi-file-executable/
│ ├── main.rs
│ └── some_module.rs
├── benches/ ベンチマーク
│ ├── large-input.rs
│ └── multi-file-bench/
│ ├── main.rs
│ └── bench_module.rs
├── examples/
│ ├── simple.rs
│ └── multi-file-example/
│ ├── main.rs
│ └── ex_module.rs
└── tests/ 結合テスト
├── some-integration-tests.rs
└── multi-file-test/
├── main.rs
└── test_module.rs
cargo build
プロジェクトをビルドする
cargo build
実行ファイルは target/debug に生成される
リリース向けビルドは --release を付与
cargo build --release
リリース向けの実行ファイルが target/release に生成される
-timings でクレートのビルド時間を確認可能
cargo build -timings
cargo run
プロジェクトのビルドと実行を1ステップで行う
cargo run
cargo check
実行ファイルは生成せずに、コードがコンパイルできるかをチェックする
cargo check
cargo test
ユニットテストとパッケージのインテグレーションテストを実行
cargo test
テストのオプションは以下で確認できる
cargo test -- --help
以下のようなテストがあった場合、
#[cfg(test)] mod tests { #[test] fn add_two_and_two() { ... } #[test] fn add_three_and_two() { ... } #[test] fn one_hundred() { ... } }
関数名を指定して特定のテストだけを実行できる
cargo test one_hundred
以下のようにすると、add から始まる2つのテストが実行される
cargo test add
cargo fix
コンパイラ警告を自動修正する
cargo fix
cargo doc
パッケージのドキュメントを生成
cargo doc --open
ドキュメントは target/doc に生成される。オプション --open でブラウザ起動
cargo clean
生成された成果物を削除
cargo clean
cargo search
crates.io からパッケージを検索。例えば serde を検索時は以下
cargo search image
cargo add
Cargo.toml に依存を追加する(Cargo.toml を直接修正しても良い)。例えば regex を追加時は以下
cargo add regex
削除時は以下
cargo remove regex
cargo update
Cargo.lock に記録されたバージョンを更新
cargo update
cargo tree
依存グラフを表示
cargo tree
cargo install / uninstall
バイナリクレートをローカルにインストールする(他人が crates.io に共有したツールを利用する便利な方法を提供する)。 例えば、ripgrep ツールをインストールするには以下
$ cargo install ripgrep
$HOME/.cargo/bin にインストールされる
アンインストールするには以下
cargo uninstall ripgrep
Cargo では、$PATHにあるバイナリが cargo-somethingという名前の場合、cargo something として Cargo のサブコマンドであるかのように実行できる。
つまり、cargo installを使用して拡張をインストールし、組み込みの Cargo コマンドのように実行できる。
このような独自のコマンドは、 cargo --list で列挙できる。
cargo publish
crates.ioのアカウントを作成し、 https://crates.io/me/でAPIトークンを取得し、APIキーを以下で保存する
cargo login <APIキー>
これによりAPIトークンが ~/.cargo/credentials に保存される。これを削除するには cargo logout を実行
Cargo.toml に必要なメタデータを定義後、以下でアップロード公開
cargo publish