0Pricing
Learn Rust Coding · レッスン

Cargo.toml

マニフェストと依存関係

「Cargo.toml」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全4レッスンが含まれています。

マニフェスト

Cargo.tomlは、すべてのRustプロジェクトのルートにあるマニフェストファイルです。TOML形式を使って、パッケージと依存関係を記述します。

[package]セクション

[package]テーブルには、クレートのメタデータを記述します。

  • name — クレート名
  • version — セマンティックバージョン
  • edition — Rustエディション(例: 2021)
[package]
name = "my_app"
version = "0.1.0"
edition = "2021"

依存関係を追加する

外部クレートは[dependencies]の下に記述します。Cargoがcrates.ioからダウンロードし、コンパイルしてくれます。

[dependencies]
rand = "0.8"
serde = "1.0"

cargo add

ファイルを手動で編集する代わりに、cargo addを使うと、互換性のある最新バージョンの依存関係を追加できます。

cargo add rand
cargo add serde

バージョン要件

バージョン文字列にはsemverのルールを使います。

  • "1.0"は1.0.0以上2.0.0未満を意味します(デフォルトではcaret指定)
  • "=1.2.3"は正確なバージョンに固定します
  • "~1.2"はパッチ更新だけを許可します
[dependencies]
regex = "=1.10.2"
log = "~0.4"

依存関係を使う

追加したら、useで項目をスコープに取り込み、コード内で呼び出します。ここでは(実際のプロジェクトで)randクレートを使います。

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let n: u8 = rng.gen_range(1..=6);
    println!("Rolled a {n}");
}

依存関係のfeatures

多くのクレートはオプションのfeaturesを公開しています。featuresキーで有効にします。多くの場合、先にデフォルトを無効にします。

[dependencies]
serde = { version = "1.0", features = ["derive"] }

開発用依存関係

[dev-dependencies]は、テスト、サンプル、ベンチマークのときだけコンパイルされ、ライブラリーと一緒に配布されることはありません。

[dev-dependencies]
pretty_assertions = "1.4"

パス依存関係とGit依存関係

依存関係は、crates.ioの代わりにローカルパスやGitリポジトリーから取得することもできます。

[dependencies]
my_lib = { path = "../my_lib" }
some_crate = { git = "https://github.com/user/repo" }

依存関係を更新する

cargo updateは、バージョン要件で許可されている最新バージョンに依存関係を更新し、Cargo.lockを書き換えます。

cargo update

オプションのパッケージメタデータ

[package]テーブルには、公開時にcrates.ioに表示される追加フィールドを指定できます。

  • authors — 作成者
  • description — 短い概要
  • license — MITのようなSPDX識別子
  • repository — ソースURL
[package]
name = "my_app"
version = "0.1.0"
edition = "2021"
description = "A small demo crate"
license = "MIT"

簡単な確認

テストの実行時にだけ必要なクレートは、どこに記述すべきですか?

まとめ

マニフェストについて学びました。

  • [package]には、名前、バージョン、エディションなどのメタデータを記述します
  • [dependencies]では、crates.io、パス、Gitから取得するクレートを宣言します
  • バージョン文字列はsemverのルールに従います
  • featuresでオプション機能を有効にします
  • [dev-dependencies]はテスト専用です

よくある質問

「Cargo.toml」レッスンは無料ですか?

はい。「Cargo.toml」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。

「Cargo.toml」で何を学びますか?

マニフェストと依存関係 ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn Rust Codingを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Cargo.toml」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn Rust Codingレッスンでコードを書いて実行できますか?

はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Cargoの基礎
  2. Cargo.toml
  3. ワークスペース
  4. FeaturesとProfiles
← Learn Rust Codingに戻る