Cargo 包管理器¶
1. 简介¶
现在主流的编程语言都有自己的包管理器,比如 Python 中的 pip,Java 中的 maven(实际上不是自带的),Rust 作为一根极具开发效率的一门语言,自然也有自己的包管理器 —— Cargo。
Cargo 可以帮助我们创建、编译、检测、测试以及运行 Rust 项目,在编译的过程中,它会隐式地调用 rustc
。
命令 | 描述 |
---|---|
cargo new |
创建新项目,也可加上 --lib 参数 |
cargo build | 构建项目,生成二进制可执行文件或库文件 |
cargo build --release | 优化 cargo build 生成的可执行文件,常用于生产环境 |
cargo check | 检测 |
cargo test | 测试 |
cargo run | 运行 |
2. 项目结构¶
下面我们先用 cargo new rust_cargo_new_project
命令来创建一个 Rust 项目,并介绍下整体的项目结构。
rust_cargo_new_project
├─ src/
│ └─ main.rs # (1)!
├─ target/ # (2)!
│ ├─ debug/
│ ├─ .rustc_info.json
│ └─ CACHEDIR.TAG
├─ Cargo.toml # (3)!
├─ Cargo.lock # (4)!
└─ .gitignore # (5)!
- 如果添加
--lib
参数创建的库项目,则该文件为lib.rs
。 - 使用
cargo build
命令后才会自动生成 - 项目的配置文件
- 使用
cargo build
命令后才会自动生成,有点像 yarn.lock。 - Cargo 会默认给项目生成 .gitignore 文件
2.1 Cargo.toml 配置文件¶
Cargo.toml 文件是使用 cargo new
命令创建项目时自动生成的:
Cargo.toml 默认配置 | |
---|---|
除了默认配置中的内容,常用的还有 build-dependencies
和 dev-dependencies
,下面我们做一个简单的介绍:
参数 | 描述 |
---|---|
package | 设置项目名称、版本号等 |
dependencies | 设置项目全局的依赖插件 |
build-dependencies | 编译项目时所需的项目依赖,因为 Rust 很少出现这种依赖问题,所以该配置项用得比较少 |
dev-dependencies | 开发者模式编译项目时所需的项目依赖,主要用于测试 |
更多配置信息请参阅官方文档。
3. 安装 Rust 第三方库¶
现如今 Python 如此受欢迎很大程度上得益于 PyPI 收录了大量优秀的第三方库,Rust 中也有这样的工具 Crates,它也收录了大量的实用第三方库,一般这些库也会有对应的文档,使用时学习下相关文档即可。下面我们安装一个生成随机数的库 —— Rand,并编写一段简单的程序。
插件名称与系统有关
对于 Windows 系统而言,可能某些插件名称与 Unix 不太一样,这个需要注意下避坑。
3.1 修改配置文件¶
我们可以在 Cargo.toml 配置文件添加 Rand
依赖,在编译时 Cargo 则会自动帮我们安装,非常方便。
使用 Rand 生成随机数
3.2 添加依赖¶
另外一种方式就是像 Python 中 pip install
的方式一样手动安装插件,通过 cargo add
来进行安装,并且 Cargo 会根据执行命令自动将依赖追加到 Cargo.toml 文件:
# 安装最新的插件
cargo add rand
cargo add --build rand
cargo add --dev rand
# 安装指定版本的插件
cargo add rand@0.7.0
提示没有 cargo add 命令
如果你安装的是早期的 Rust 版本,那么 Cargo 可能没有 add
命令,我们需要先通过 cargo install cargo-edit
安装 Cargo-Edit 插件,安装后就可以使用 cargo add
命令来安装插件了,具体可以参阅 Cargo-Edit。
删除安装的依赖也非常简单,直接使用如下命令卸载掉 Rand 插件,卸载完成后 Cargo.toml 文件也会同步更新。
4. 设置国内安装源¶
和 Python 中 pip 一样,安装第三方库时可能会遇到下载速度慢的问题,这里推荐给 Cargo 设置下国内安装源 —— RsProxy。
在配置文件中添加如下内容,如果没有此文件的话请手动创建一个:
~/.cargo/config | |
---|---|