Workspaces
IntermédiaireUn 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) etcli(outil en ligne de commande) qui dépendent tous decore.