【カーゴ】

Cargo とは?

💡 Rustの荷物は全部おまかせ、ビルドもテストも一手に引き受ける船長
📌 このページのポイント
Cargo: Rustの開発ワークフロー Cargo.toml プロジェクト設定+依存管理 Cargo cargo build コンパイル cargo test テスト実行 cargo run ビルド+実行 cargo add 依存追加 crates.io
Cargoによる開発ワークフローのイメージ
ひよこ ひよこ

RustにはCargoっていうのがあるって聞いたけど、npmみたいなもの?

ペンギン先生 ペンギン先生

npmに近いけど、もっと範囲が広いよ。パッケージ管理だけじゃなくて、ビルド、テスト実行、ドキュメント生成、ベンチマークまで全部Cargoでできるんだ

ひよこ ひよこ

package.jsonみたいな設定ファイルはあるの?

ペンギン先生 ペンギン先生

Cargo.tomlというファイルがそれにあたるよ。TOML形式で書きやすくて、依存パッケージやビルド設定をまとめて管理できるんだ

ひよこ ひよこ

パッケージはどこから持ってくるの?

ペンギン先生 ペンギン先生

crates.ioという公式レジストリだよ。npmレジストリRust版だね。cargo add serde みたいにコマンド一発で依存を追加できるんだ

ひよこ ひよこ

Rustって難しいイメージあるけど、Cargoは使いやすい?

ペンギン先生 ペンギン先生

実はCargoはすごく良くできていて、Rustで一番褒められる部分の一つだよ。cargo new でプロジェクト作成、cargo run で実行、テストも cargo test だけ。統一されていて迷わないんだ

ひよこ ひよこ

BiomeRuffRust製だけど、それらもCargoで作られてるの?

ペンギン先生 ペンギン先生

そうだよ。BiomeRuffuvもCargoでビルドされているんだ。Rust製ツールが増えている今、Cargoはそれらを支える縁の下の力持ちだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Cargo」って出てきたら「Rustの公式パッケージ管理&ビルドツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cargo」 = 貨物・積み荷
💬 Rustのマスコットが蟹(Ferris)だから、船と貨物のイメージでCargoなんだよ。パッケージ(荷物)を運んで届けてくれる存在だね
← 用語集にもどる