【RustのCargo入門】プロジェクト作成からビルド、依存関係管理まで徹底解説!

2025年4月20日日曜日

Rust

この記事では、RustのCargo入門として、プロジェクトの立ち上げから基本的な使い方、ちょっと便利な機能まで、まるっと解説していきます!

Rustを学び始めたばかりだと、Cargoって名前は聞くけど、実際何をしてくれるヤツなのか、イマイチぴんと来ないかもしれませんね。

大丈夫!この記事を読めば、CargoがRust開発をどれだけ楽にしてくれるか、きっと実感できるはず。

この記事でわかること

  • Cargoが何者なのか、なぜRust開発でよく使われるのかが分かる
  • Cargoを使って新しいRustプロジェクトをサクッと作れる
  • 書いたコードをビルド(コンピューターが分かる言葉に翻訳)して実行できる
  • 便利な外部プログラム(クレート)を自分のプロジェクトに取り込む方法が分かる
  • よく使うCargoコマンドを覚えられる

RustのCargoとは?Rust開発に必須の味方を理解しよう


さて、まずはじめに「Cargo(カーゴ)」とは一体何者なのか、その正体を探っていきましょう。

一言でいうと、CargoはRustプログラムを作る上でのお助け役、万能マネージャーみたいな存在です。

プログラミングの世界では、コードを書くだけでなく、それを動かすための準備(ビルド)や、他の人が作った便利なプログラム部品(ライブラリやクレートと呼びます)の管理、テストの実行など、色々な作業が発生します。

Cargoは、そういったRust開発にまつわる面倒な作業を、ほとんど自動でやってくれるんです。

もしCargoがなかったら…と考えると、プロジェクトの準備からビルド、ライブラリの管理まで、全部手作業でやることになり、考えるだけでちょっと大変そうですよね?

Cargoがあるからこそ、私たちは快適にRustコードを書くことに集中できるのです。

なぜCargoが必要?Rust開発におけるCargoの役割

じゃあ、具体的にCargoはどんな仕事をしてくれるのでしょうか? 主な役割を見てみましょう。

  • プロジェクトのひな形作成
    Rustプロジェクトに必要な基本的なファイルやフォルダ構成を、コマンド一つでパッと作ってくれます。
  • ビルド(翻訳作業)の自動化
    人間が書いたRustのコードを、コンピューターが実行できる形式に変換(ビルド)する作業を自動で行います。
  • 依存クレート(外部プログラム)の管理
    他の人が作って公開している便利なプログラム部品(クレート)を使いたい時、それをインターネットから探してきて、自分のプロジェクトに組み込む準備を自動でやってくれます。バージョン管理もしてくれるので安心です。
  • テストの実行
    書いたコードが正しく動くかを確認するテストコードを実行するのも、Cargoのコマンド一つで簡単に行えます。
  • その他いろいろ
    ドキュメント作成の補助や、プロジェクトの公開など、他にもたくさんの機能があります。

Cargoはまさに、Rust開発の縁の下の力持ちと言えるでしょう。

Cargoを使うメリット - 開発効率が劇的に向上!

Cargoを使うと、どんないいことがあるのでしょうか? 

一番大きなメリットは、開発の効率がめちゃくちゃ上がることです!

  • 時間の節約
    ビルドや依存関係の管理といった面倒な作業をCargoが肩代わりしてくれるので、プログラマーはコードを書くことに集中できます。
  • ミスの削減
    手作業でやると間違いやすい設定なども、Cargoがよしなに対応してくれるので、ミスが減ります。
  • コードの再利用が簡単に
    世界中の開発者が作った便利なクレートを、まるで自分の道具箱から道具を取り出すように、簡単にプロジェクトに追加して使えます。これにより、複雑な機能も効率よく実装できるようになるのです。車輪の再発明をしなくて済むのは嬉しいですね!
  • プロジェクト構成の標準化
    Cargoを使うと、誰が作っても同じようなフォルダ構成になるので、他の人が書いたコードも読みやすくなります。

特に、他の開発者が作った便利なクレート(部品)を簡単に使えるようになる点は、開発スピードを格段に上げてくれます。これを使わない手はないですよね!

Cargoの基本的な使い方 - 最初のプロジェクトを作ってみよう

お待たせしました! ここからは実際にCargoを使ってみましょう。

まずは、あなたのパソコンにCargoが入っているか確認するところから始めます。
ターミナル(WindowsならコマンドプロンプトやPowerShell、Macならターミナル.app)を開いて、以下のコマンドを打ち込んでみてください。

cargo --version

もし、`cargo 1.XX.X (....)` みたいな表示が出れば、Cargoはすでに準備OKです!

(もしコマンドが見つからない、といったエラーが出た場合は、Rustの公式サイトからRust自体をインストールし直してみてください。通常、Rustと一緒にCargoもインストールされます。)

準備ができたら、いよいよ最初のRustプロジェクトを作成してみましょう!

プロジェクトの作成 - `cargo new`コマンド

新しいRustプロジェクトを作るのは、驚くほど簡単です。
ターミナルで、プロジェクトを作りたい場所に移動してから、以下のコマンドを実行します。

cargo new my_first_project

`my_first_project` の部分は、あなたの好きなプロジェクト名に変えてくださいね。(半角英数字とアンダースコア `_` が使えます)

このコマンドを実行すると、`my_first_project` という名前のフォルダが作られ、その中にいくつかファイルとフォルダが自動で生成されます。

my_first_project/
├── Cargo.toml
└── src/
    └── main.rs
  • `Cargo.toml`
    プロジェクトの設定ファイルです。プロジェクト名やバージョン、そして利用する外部クレート(後で説明します)などを記述します。このファイルはCargoにとって非常に心臓部です。
  • `src/`
    ソースコードを置くためのフォルダです。
  • `src/main.rs`
    プログラムのエントリーポイントとなるファイルです。最初に実行されるコードが書かれています。中身は `Hello, world!` を表示する簡単なプログラムがすでに書かれているはずですよ。

たったこれだけで、Rustプロジェクトの基本的な骨組みが完成しました!簡単でしょう?

プログラムのビルド - `cargo build`コマンド

さて、プロジェクトができたので、次はこの中のプログラム(`src/main.rs`)をコンピューターが実行できる形に変換(ビルド)してみましょう。

ターミナルで、先ほど作成したプロジェクトのフォルダ(`my_first_project`)の中に移動してから、以下のコマンドを実行します。

cd my_first_project
cargo build

コマンドを実行すると、いくつかメッセージが表示され、ビルドが行われます。

ビルドが成功すると、プロジェクトフォルダの中に `target` という新しいフォルダが作られ、さらにその中の `debug` フォルダに、実行可能なファイル(Windowsなら `.exe` がついたファイル、MacやLinuxなら拡張子なしのファイル)が生成されます。

この `cargo build` コマンドは、ソースコードをチェックして、問題がなければ実行ファイルを作り出す大事な工程です。

ちなみに、配布用の最適化された実行ファイルを作りたい場合は、`cargo build --release` というコマンドを使います。これは少しビルドに時間がかかりますが、実行速度が速くなります。

プログラムの実行 - `cargo run`コマンド

ビルドして実行ファイルを作る方法が分かりましたね。

でも、「ビルドして、それから実行ファイルを自分で探して実行するのって、ちょっと面倒…」と感じませんか?

そんなあなたのために、もっと便利なコマンドがあります。それが `cargo run` です!

cargo run

このコマンドは、ビルドと実行を一度にやってくれるスグレモノです。

もしソースコードに変更があってまだビルドされていなければ、まずビルドを行い、その後すぐにプログラムを実行してくれます。変更がなければ、すぐに実行してくれます。

開発中は、コードを書いては試して、を繰り返すことが多いので、`cargo run` コマンドを主に使うことになるでしょう。

実行すると、ターミナルに `Hello, world!` と表示されるはずです。最初のプログラムが動きましたね!

コードのテスト - `cargo test`コマンド

プログラムが大きくなってくると、「ちゃんと意図した通りに動いているかな?」と確認するのが大変になってきます。

そんな時に役立つのが「テスト」です。RustとCargoは、テストコードを書いて、それを簡単に実行する仕組みも備えています。

テストを実行するには、以下のコマンドを使います。

cargo test

このコマンドを実行すると、プロジェクト内のテストコードを探して実行し、結果を表示してくれます。

まだテストコードは書いていないので、今は「0 tests ran」のように表示されるかもしれませんが、プログラムの品質を保つためにはテストがとても有効です。

これからRustを学んでいく中で、テストの書き方もぜひ覚えてみてくださいね。

RustのCargoで開発を加速 - 外部クレートを使ってみよう

Cargoのすごい機能の一つが、依存関係の管理です。

これは、他の人が作って公開してくれている便利なプログラム部品(クレートと呼びます)を、自分のプロジェクトに簡単に取り込んで利用できる機能のこと。

例えば、「ランダムな数字を使いたいな」と思った時、自分でその仕組みを作るのは結構大変です。でも、Rustには `rand` という、まさにそのためのクレートが公開されています。

Cargoを使えば、この `rand` クレートを、まるで自分の道具箱に新しい道具を追加するように、簡単にプロジェクトに組み込めるのです。

Rustのクレートはcrates.ioというサイトにたくさん集められていて、誰でも利用できます。ここを探せば、きっとあなたの欲しい機能を持ったクレートが見つかるはずですよ。

依存関係の追加 - `Cargo.toml`の編集

では、実際に外部クレートを使ってみましょう。例として、先ほどの `rand` クレートを追加してみます。

プロジェクトのルートにある `Cargo.toml` ファイルをテキストエディタで開いてください。
ファイルの下の方に `[dependencies]` というセクションがあります。(もしなければ、自分で追加してください。)

このセクションに、使いたいクレート名とバージョンを追記します。

[package]
name = "my_first_project"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
rand = "0.8" 

上の例では、`[dependencies]` の下に `rand = "0.8"` と追記しました。これは、「`rand` クレートのバージョン0.8系統を使いますよ」という意味です。

バージョン番号は `crates.io` で確認できます。通常は最新の安定版を指定することが多いでしょう。

たったこれだけの記述で、外部クレートを使う準備は完了です。ね、簡単でしょう?

クレートの利用:`use`宣言とビルド

`Cargo.toml` に使いたいクレートを記述したら、次はソースコード(`src/main.rs`)で「このクレートの機能を使いますよ!」と宣言する必要があります。

それには `use` キーワードを使います。

例えば、`rand` クレートを使って0から9までのランダムな整数を生成するには、`src/main.rs` を以下のように書き換えます。

use rand::Rng; // randクレートのRngトレイトを使いますよ、と宣言

fn main() {
    let mut rng = rand::thread_rng(); // 乱数生成器を用意
    let n: u32 = rng.gen_range(0..10); // 0から9までの乱数を生成
    println!("Random number: {}", n); // 生成した乱数を表示
}

コードを書き換えたら、ターミナルで `cargo run` を実行してみましょう。

cargo run

すると、Cargoはまず `Cargo.toml` を見て、「お、`rand` クレートが必要なんだな」と判断し、インターネットから自動で `rand` クレート(と、それが必要とする他のクレート)をダウンロードしてきます。そして、それらをあなたのコードと一緒にビルドし、実行してくれます。

実行結果として、`Random number: 7` のように、毎回違う数字が表示されるはずです。

`Cargo.toml` に書いて `use` で宣言し、あとは普通にビルド(または実行)するだけで、外部の強力な機能を自分のプログラムに取り込めてしまう。これがCargoの依存関係管理の力です!

【まとめ】RustのCargoで快適な開発を!

さて、ここまでRustの万能マネージャー、Cargoについて解説してきました。

Cargoがプロジェクト作成、ビルド、実行、テスト、そして依存関係の管理といった、Rust開発における様々な作業をいかに簡単にしてくれるか、感じていただけたでしょうか?

もう一度おさらいすると、Cargoは

  • `cargo new` でプロジェクトをサクッと作成
  • `cargo build` でコードをコンピューターが分かる言葉に翻訳
  • `cargo run` でビルドと実行を一気に
  • `cargo test` で書いたコードの動作確認
  • `Cargo.toml` で外部の便利なクレート(部品)を簡単に追加

といった機能で、あなたのRust開発を力強くサポートしてくれます。

最初は覚えることが少しあるかもしれませんが、一度使い方を覚えてしまえば、手放せなくなること間違いなしです。

ぜひ、この記事を参考に、実際にコマンドを打ち込んで試してみてください。Cargoを使いこなして、快適なRustプログラミングの世界を楽しみましょう!

このブログを検索

  • ()

自己紹介

自分の写真
リモートワークでエンジニア兼Webディレクターとして活動しています。プログラミングやAIなど、日々の業務や学びの中で得た知識や気づきをわかりやすく発信し、これからITスキルを身につけたい人にも役立つ情報をお届けします。 note → https://note.com/yurufuri X → https://x.com/mnao111

QooQ