0Pricing
Learn Rust Coding · Lektion

Workspaces

Multi-Crate-Projekte

Workspaces ist eine kostenlose Learn Rust Coding-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn Rust Coding-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

What Is a Workspace?

A workspace is a set of related crates that share a single Cargo.lock and a common target directory. It's the standard way to manage multi-crate projects.

The Root Manifest

The workspace root has a Cargo.toml with a [workspace] table listing the member crates. The root itself usually has no package.

[workspace]
members = ["app", "core", "utils"]
resolver = "2"

Workspace Layout

A typical layout puts each crate in its own subdirectory:

  • Cargo.toml — workspace root
  • app/ — a binary crate
  • core/ — a library crate
  • utils/ — another library crate

Creating Members

You create members like any crate, then add them to the root manifest's members list.

cargo new app
cargo new core --lib
cargo new utils --lib

Depending on a Member

One member crate depends on another using a path dependency in its own Cargo.toml.

[dependencies]
core = { path = "../core" }
utils = { path = "../utils" }

Calling Across Crates

Public items in one crate are used from another by referencing the crate name. Here core exposes a function the binary calls.

// 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}");
}

Building the Whole Workspace

Running Cargo at the root builds every member. The shared target directory means common dependencies are compiled only once.

cargo build
cargo test

Targeting One Member

Use -p (or --package) to run a command for a single member crate.

cargo run -p app
cargo test -p core

Workspace Dependencies

Define shared versions once under [workspace.dependencies], then reference them from members to keep versions in sync.

# root Cargo.toml
[workspace.dependencies]
serde = "1.0"

# member Cargo.toml
[dependencies]
serde = { workspace = true }

Why Use Workspaces?

Benefits of a workspace:

  • Single shared lockfile for consistent versions
  • Faster builds via one shared target directory
  • Easy to split a large project into focused crates
  • One command builds and tests everything

Excluding a Directory

The exclude key keeps certain directories out of the workspace, while default-members sets which crates run when you do not pass -p.

[workspace]
members = ["app", "core"]
exclude = ["experiments"]
default-members = ["app"]

Quick Check

What do all crates in a workspace share?

Recap

You learned about workspaces:

  • The [workspace] table lists members
  • Members depend on each other via path
  • A shared lockfile and target directory speed up builds
  • Use -p to target one member
  • [workspace.dependencies] centralizes versions

Häufig gestellte Fragen

Ist die Lektion „Workspaces“ kostenlos?

Ja — der vollständige Text von „Workspaces“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn Rust Coding-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Workspaces“?

Multi-Crate-Projekte Du übst Learn Rust Coding mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn Rust Coding zu starten?

Keine Vorkenntnisse erforderlich. Learn Rust Coding auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Workspaces“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn Rust Coding-Lektion Code schreiben und ausführen?

Ja. Jede Learn Rust Coding-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Cargo-Grundlagen
  2. Cargo.toml
  3. Workspaces
  4. Features und Profile
← Zurück zu Learn Rust Coding