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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cargoの基礎
- Cargo.toml
- ワークスペース
- FeaturesとProfiles