Cargo 与包管理

Cargo 是 Rust 的构建、依赖与工具链编排入口:crate 是编译单元(库或可执行文件);package 包含 Cargo.toml 与一个或多个 crate。模块 mod 组织源码树,与本书其它章节中的类型、泛型与Trait错误处理 等在同一工程内协作。


常用命令

命令作用
cargo new name / --lib新建包
cargo build编译(默认 dev)
cargo build --release优化发布构建
cargo run构建并运行默认 binary
cargo test运行测试与 doctest
cargo doc --open生成并打开文档
cargo clippy更多 lint(需安装 clippy)
cargo fmt格式化(rustfmt)

Cargo.toml 要点

[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
 
[dependencies]
serde = { version = "1", features = ["derive"] }
 
[dev-dependencies]
  • edition:语言行为规范(2015 / 2018 / 2021 / …)。
  • 语义化版本^~、精确版本号等修饰符见 Cargo 手册对应章节
  • features:条件编译与可选依赖。
  • workspace:多包 monorepo 共用锁定与构建缓存。

模块与文件约定

  • crate 根src/main.rs(binary)或 src/lib.rs(library)。
  • mod foo;:可对应 src/foo.rssrc/foo/mod.rs
  • pub use:重导出,塑造对外 API 表面。

use 路径

  • 绝对路径crate::super::self::)与 2018+ 外部 crate 名 直接作根。
  • pub(crate) 等限制可见性域。

与语言特性协作

  • 集成测试tests/*.rs独立 crate 仅能通过公有 API 测 library。
  • 基准criterion 等常作 dev-dependency 或独立 bench target。

相关链接