</>
Plan du cours — 32/66

Workspaces

Intermédiaire

Un workspace regroupe plusieurs crates qui partagent Cargo.lock et le dossier target/.

# Cargo.toml à la racine
[workspace]
members = ["api", "core", "cli"]
resolver = "3"

[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
# api/Cargo.toml
[dependencies]
serde = { workspace = true }
core = { path = "../core" }
cargo build --workspace
cargo test -p core          # tester un seul crate
cargo run -p api

Cas pratique : structurer un projet en core (logique métier pure, testable), api (serveur HTTP) et cli (outil en ligne de commande) qui dépendent tous de core.