Cargo workspaces 用于有多个子包的项目

Minimum Rust version: 1.12

Cargo 曾经有两个组织层次:

  • 一个 package 有一个或多个 crates
  • 一个 crate 有一个或多个 modules

Cargo 现在有一个额外的层次:

  • 一个 workspace 包含一个或多个 packages

这对于大型项目非常有用。例如,the futures package 是一个 workspace,包含许多相关的包:

  • futures
  • futures-util
  • futures-io
  • futures-channel

还有其他。

Workspaces 允许单独开发这些包,但它们共享一组依赖项,因此只有单个 target 目录和单个 Cargo.lock

更多有关 workspaces, 请查阅 the Cargo documentation.