Rust使用crate来构建、测试、共享,Crate 单元包是一个模块树,有两种类型:binary 可执行文件 和 library 库
介绍
Crate Root:源代码的文件,Rust 编译器以此目录作为 Crate 的根 Module,一个 Package 下包括:
- 1个
Cargo.toml 配置文件,用来描述如何构建 Crates
- 只能包含 0~1 个
library crate
- 可以包含任意数量的
binary crate
- 且至少包含一个 Create(binary 或 library)
Crate 作用:将相关功能组合到一个作用域内,便于在项目间进行共享
约定
Crate Root 在 Cargo 的约定如下:
binary crate
- 默认文件:
src/main.rs,package 包含一个 binary crate
- binary crate 的 crate root(根)
- crate 名与 package 名相同
- 多个可执行程序:
src/bin/*.rs,package 包含多个 binary crate
library crate
src/lib.rs:package 包含一个 library crate
- library crate 的 crate root(根)
- crate 名与 package 名相同
- Cargo 将
crate root 文件交给 rustc 来构建 library 或 binary
binary crate
可以将业务逻辑从 main.rs 拆分为到 lib.rs 中,一般 main.rs 中内容:
- 参数解析
- 调用 lib.rs 中的 run 函数
- 处理 run 函数中可能的错误