Appearance
Cargo
Cargo是Rust的构建系统和包管理工具,用于构建代码、下载依赖库、构建库等。
安装Rust时会安装Cargo。下面的命令查看cargo版本
- cargo --version
下面这行创建新项目
- cargo new 项目名
输入之后会创建文件夹和文件。其中:
cargo.toml,TOML(Tom's Obvious, Minimal Language),是Cargo的配置格式。
里面的内容如下:
[package]
name = "项目名称"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies][package]下面主要是包的信息:包名、作者(authors。上面没有,可以自己添加)、版本、Rust版本
[dependencies]下面是依赖包,主要是官方或第三方的依赖。Rust中这些依赖称为crate。
一般来说,源代码文件都放到src文件夹里,项目顶层目录存放README等其他文件。
如果创建的时候没有使用cargo命令,可以把新建src文件夹,将源码放入,并写好Cargo.toml,这样就转化成了cargo管理的项目。
下面这行构建项目,在target/debug中生成可执行文件。
- cargo build
生成后运行(如果没有构建,这句会先构建再运行)
- cargo run
检查代码
- cargo check
为发布构建,在target/release中生成可执行文件。优化好,所以编译时间较普通build长。
- cargo build --release
推荐
其他指令
- cargo fmt, 格式化代码。
- cargo clippy, 代码检查工具。捕捉错误并给出建议。
- cargo test, 内置的测试运行器,可靠且能完成基本测试任务。
- cargo nextest, 速度更快(约6倍),自动重试不稳定的测试。它是社区开发的test的替代品。
优化运行速度
- 添加依赖
Cargo.toml中添加criterion作为[dev-dependency]。 - 为基准测试目标设置
harness=false - 在
benches/目录下创建基准测试文件,使用criterion库编写基准测试代码。 - 使用
cargo bench,运行基准测试
检查依赖
cargo install cargo-audit
cargo-audit会检查依赖的安全性,包括已知的安全漏洞。
运行检查
- cargo audit
发布
- cargo-release,自动化版本提升,git打标和发布
- git-cliff,从git提交历史生成变更日志
- cargo-dist,构建、打包并托管多平台二进制文件。
- 运行
cargo release - 自动触发提升版本,创建Git标签,并推送到仓库
- CI接管,新标签在GitHub Actiions上触发
cargo-dist。
一些说明
- Cargo.toml是可读写的配置文件; Cargo.lock是Cargo自动生成的依赖锁定文件,记录了所有依赖的精确版本,不应手动修改。