0Pricing
Learn Rust Coding · Aula

Espaços de trabalho

Projetos com vários crates

Espaços de trabalho é uma aula grátis de Learn Rust Coding no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn Rust Coding, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn Rust Coding inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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

Perguntas Frequentes

A aula “Espaços de trabalho” é grátis?

Sim — o texto completo de “Espaços de trabalho” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn Rust Coding, atualize para CoddyKit PRO. O curso de Learn Rust Coding inclui 4 aulas no total.

O que vou aprender em “Espaços de trabalho”?

Projetos com vários crates Você pratica Learn Rust Coding com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn Rust Coding?

Nenhuma experiência prévia é necessária. Learn Rust Coding no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Espaços de trabalho”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn Rust Coding?

Sim. Cada aula de Learn Rust Coding inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos do Cargo
  2. Cargo.toml
  3. Espaços de trabalho
  4. Recursos e perfis
← Voltar para Learn Rust Coding