如何在大规模 Rust 团队项目中划分 mod、控制 pub(crate) 可见性、管理 Cargo.toml 依赖并搭建多包 Monorepo。

1. 模块树与可见性控制

Rust 默认一切都是私有的,需要通过 pub 明确暴露接口:

  • pub: 全局公开。
  • pub(crate): 仅在当前 Crate 内可见。
  • pub(super): 仅父级模块可见。

2. Cargo Workspace 配置多模块

# 根目录 Cargo.toml
[workspace]
members = [
    "crates/core",
    "crates/network",
    "crates/server"
]