# 模块与包管理

URL: https://caijiao.org/rust/05-structure/04-modules
Source: docs/rust/05-structure/04-modules.md
Description: Rust 的模块（module）和包（crate）系统用于组织代码结构，管理代码可见性，实现代码复用和依赖管理。

Rust 通过模块和包组织代码，使大型项目结构清晰，便于维护。

## 模块（module）

模块用于分割代码文件和作用域，使用 `mod` 关键字声明：

```rust
mod front_of_house {
    pub mod hosting {
        pub fn add_to_waitlist() {
            println!("添加到候客名单");
        }
    }
}
```

调用模块内函数：

```rust
fn main() {
    crate::front_of_house::hosting::add_to_waitlist();
}
```

## pub 关键字

默认模块成员私有，使用 `pub` 关键字使其公开，允许外部访问。

## 文件和目录对应模块

- `mod.rs` 或目录名对应模块
- 同级文件对应子模块

例如：

```
src/
  front_of_house/
    mod.rs  // 定义 front_of_house 模块
    hosting.rs  // hosting 子模块
```

## 包（crate）

包是一个或多个模块的集合，带有 `Cargo.toml` 文件管理依赖。

使用 Cargo 创建和管理包：

```bash
cargo new my_project
cargo build
cargo run
```

## 引入外部依赖

在 `Cargo.toml` 添加依赖：

```toml
[dependencies]
serde = "1.0"
```

---



Rust Playground 示例代码
