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 函数中可能的错误