0Pricing
Learn Rust Coding · Leçon

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 travail
  • app/ — un paquet binaire
  • core/ — un paquet de bibliothèque
  • utils/ — 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 --lib

Dé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 test

Cibler un membre

Utilisez -p (ou --package) pour exécuter une commande sur un seul paquet membre.

cargo run -p app
cargo test -p core

Dé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 target partagé
  • 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 -p pour 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

  1. Bases de Cargo
  2. Cargo.toml
  3. Espaces de travail
  4. Fonctionnalités et profils
← Retour à Learn Rust Coding