Rust

Cargo Workspace Setup

admin by @admin ADMIN
Jun 18, 2026
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
A workspace lets a single repo contain multiple related crates (e.g. core lib + CLI + server) that share `target/` and dependencies. The root `Cargo.toml` lists members.
Rust
Raw
# Root Cargo.toml
[workspace]
resolver = "2"
members  = ["core", "cli", "server"]

[workspace.dependencies]
serde       = { version = "1", features = ["derive"] }
serde_json  = "1"
tokio       = { version = "1", features = ["full"] }

# core/Cargo.toml
[package]
name    = "myapp-core"
version = "0.1.0"
edition = "2021"

[dependencies]
serde      = { workspace = true }
serde_json = { workspace = true }

# cli/Cargo.toml
[package]
name    = "myapp-cli"
version = "0.1.0"
edition = "2021"

[dependencies]
myapp-core = { path = "../core" }
clap       = { version = "4", features = ["derive"] }

# Build / test everything
#   cargo build --workspace
#   cargo test  --workspace
#   cargo run -p myapp-cli -- --help
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.