入门 The Cargo Team 2026-09-13 15:48:21 · 0 阅读
第7章 Cargo Package 布局规范
Cargo 采用约定的文件布局,让你可以轻松上手一个新的 Cargo package:
.
├── Cargo.lock
├── Cargo.toml
├── src/
│ ├── lib.rs
│ ├── main.rs
│ └── bin/
│ ├── named-executable.rs
│ ├── another-executable.rs
│ └── multi-file-executable/
│ ├── main.rs
│ └── some_module.rs
├── benches/
│ ├── large-input.rs
│ └── multi-file-bench/
│ ├── main.rs
│ └── bench_module.rs
├── examples/
│ ├── simple.rs
│ └── multi-file-example/
│ ├── main.rs
│ └── ex_module.rs
└── tests/
├── some-integration-tests.rs
└── multi-file-test/
├── main.rs
└── test_module.rs
Cargo.toml和Cargo.lock存放在 package 根目录(即 package root)。- 源代码放在
src目录下。 - 默认的库文件是
src/lib.rs。 - 默认的可执行文件是
src/main.rs。- 其他可执行文件可以放在
src/bin/下。
- 其他可执行文件可以放在
- 基准测试(bench)放在
benches目录。 - 示例放在
examples目录。 - 集成测试放在
tests目录。
如果一个二进制、示例、bench 或集成测试由多个源文件组成,可以在 src/bin、examples、benches 或 tests 目录下建一个子目录,把 main.rs 和其他 module 放进去。可执行文件的名称就是这个子目录的名字。
注意: 按照惯例,二进制、示例、bench 和集成测试采用
kebab-case命名风格,除非有兼容性方面的原因不得不另作选择(比如要与已有的二进制名称保持一致)。这些 target 内部的 module 则遵循 Rust 标准,使用snake_case命名。
关于 Rust 的模块系统,你可以在The Book 中了解更多。