Espaces de travail
Projets composés de plusieurs crates
Espaces de travail est une leçon Learn Rust Coding gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn Rust Coding, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn Rust Coding comprend 4 leçons au total.
Qu’est-ce qu’un espace de travail ?
Un espace de travail est un ensemble de paquets associés qui partagent un unique Cargo.lock et un répertoire target commun. C’est la manière standard de gérer les projets composés de plusieurs paquets.
Le manifeste racine
La racine de l’espace de travail contient un Cargo.toml avec une table [workspace] répertoriant les paquets membres. La racine elle-même ne contient généralement aucun paquet.
[workspace]
members = ["app", "core", "utils"]
resolver = "2"Organisation d’un espace de travail
Une organisation courante place chaque paquet dans son propre sous-répertoire :
Cargo.toml— racine de l’espace de travailapp/— un paquet binairecore/— un paquet de bibliothèqueutils/— un autre paquet de bibliothèque
Créer des membres
Créez les membres comme n’importe quel paquet, puis ajoutez-les à la liste members du manifeste racine.
cargo new app
cargo new core --lib
cargo new utils --libDépendre d’un membre
Un paquet membre dépend d’un autre en utilisant une dépendance path dans son propre Cargo.toml.
[dependencies]
core = { path = "../core" }
utils = { path = "../utils" }Appeler du code entre paquets
Les éléments publics d’un paquet sont utilisés depuis un autre en faisant référence au nom du paquet. Ici, core expose une fonction appelée par le binaire.
// in core/src/lib.rs
pub fn greeting(name: &str) -> String {
format!("Hello, {name}!")
}
// in app/src/main.rs
fn main() {
let msg = core::greeting("workspace");
println!("{msg}");
}Compiler tout l’espace de travail
L’exécution de Cargo à la racine compile chaque membre. Le répertoire target partagé permet de ne compiler les dépendances communes qu’une seule fois.
cargo build
cargo testCibler un membre
Utilisez -p (ou --package) pour exécuter une commande sur un seul paquet membre.
cargo run -p app
cargo test -p coreDépendances de l’espace de travail
Définissez une seule fois les versions partagées sous [workspace.dependencies], puis faites-y référence depuis les membres afin de conserver des versions cohérentes.
# root Cargo.toml
[workspace.dependencies]
serde = "1.0"
# member Cargo.toml
[dependencies]
serde = { workspace = true }Pourquoi utiliser des espaces de travail ?
Avantages d’un espace de travail :
- Un seul fichier de verrouillage partagé pour garantir des versions cohérentes
- Des compilations plus rapides grâce à un répertoire
targetpartagé - Une manière simple de diviser un grand projet en paquets spécialisés
- Une seule commande pour tout compiler et tout tester
Exclure un répertoire
La clé exclude maintient certains répertoires à l’écart de l’espace de travail, tandis que default-members définit les paquets exécutés lorsque vous ne transmettez pas -p.
[workspace]
members = ["app", "core"]
exclude = ["experiments"]
default-members = ["app"]Vérification rapide
Que partagent tous les paquets d’un espace de travail ?
Récapitulatif
Vous avez découvert les espaces de travail :
- La table
[workspace]répertorie les membres - Les membres dépendent les uns des autres via
path - Le fichier de verrouillage et le répertoire cible partagés accélèrent les compilations
- Utilisez
-ppour cibler un membre [workspace.dependencies]centralise les versions
Questions Fréquemment Posées
La leçon « Espaces de travail » est-elle gratuite ?
Oui — le texte complet de « Espaces de travail » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn Rust Coding, passe à CoddyKit PRO. Le cours Learn Rust Coding comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Espaces de travail » ?
Projets composés de plusieurs crates Tu pratiques Learn Rust Coding avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn Rust Coding ?
Aucune expérience préalable n'est requise. Learn Rust Coding sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Espaces de travail » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn Rust Coding ?
Oui. Chaque leçon Learn Rust Coding inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases de Cargo
- Cargo.toml
- Espaces de travail
- Fonctionnalités et profils