- バージョン確認
- 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 none
git リポジトリの生成が不要な場合
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