Cargo->Rust 的包管理器
- Cargi简介
- Cargo 的主要功能
- 1. 创建项目
- 2. 管理依赖
- 3. 构建项目
- 4. 运行项目
- 5. 测试代码
- 6. 检查代码
- 7. 生成文档
- 8. 发布和分享包
- Cargo 的核心文件
- 1. `Cargo.toml`
- 2. `Cargo.lock`
- **Cargo 的生态系统**
- 常用命令总结
- Hello, Cargo! 示例
Cargi简介
Cargo 是 Rust 的包管理器和构建工具,类似于其他语言中的工具,如 JavaScript 的 npm、Python 的 pip 或 Java的 Maven 等。它是 Rust 生态系统的重要组成部分,默认随 Rust 编译器一起安装。Cargo 简化了依赖管理、项目构建、测试、文档生成等开发工作。
Cargo 的主要功能
查看是否安装了Cargo,一般Cargo是和Rust一起安装的。在命令窗口输入
cargo --version
能正常输出版本号,表示已经安装成功。
1. 创建项目
Cargo 可以快速生成一个新项目的基本结构,包括必要的配置文件和目录:
cargo new project_name
这会创建一个包含以下内容的项目:
project_name/
├── Cargo.toml # 项目配置文件
├── src/
└── main.rs # 主程序文件
2. 管理依赖
Cargo 使用 Cargo.toml
文件来管理项目依赖,类似于 Python 的 requirements.txt
或 Node.js 的 package.json
。
[package] -- 是一个区域标题,表示下方内容是配置package的
name = "hello_cargo" -- 项目名称
version = "0.1.0" -- 项目版本
authors= ["Venus"] -- 项目作者
edition = "2021" -- 使用的Rust的版本
[dependencies] -- 会列出项目使用的依赖项,在Rust中,代码的包叫做crate
在 Cargo.toml
中添加依赖后,运行以下命令会下载并编译依赖:
cargo build
依赖示例 (Cargo.toml
):
[dependencies]
serde = "1.0" # 添加 serde 库
tokio = { version = "1.0", features = ["full"] } # 添加 tokio 库并启用特性
3. 构建项目
Cargo 自动管理项目的构建过程,包括编译源代码和依赖库。运行以下命令即可构建项目:
cargo build
它会在 target/debug/
目录下生成调试版本的可执行文件。可以通过 --release
构建优化后的生产版本:
cargo build --release
使用cargo build
之后
- 创建了可执行文件,在
target\debug\hello_cargo.exe
- 第一次运行
cargo build
会在顶层目录生成cargo.lock
文件,该文件负责追踪项目依赖的精确版本,不要手动修改该文件。
4. 运行项目
无需手动调用编译器,直接使用以下命令运行项目:
cargo run
该命令cargo run
,编译代码 + 执行结果。
- 如果已经编译成功了,并且源代码没有进行修改,则会直接运行二进制文件。
5. 测试代码
Rust 提供内置的单元测试支持。使用 Cargo 可以轻松运行测试:
cargo test
6. 检查代码
Cargo支持检查代码。
cargo check
-
cargo check
检查代码,确保能通过编译,但是不产生任何可执行文件; - 和
cargo build
区别是,比cargo build
要快很多。 - 编写代码的时候,可反复使用进行调试。
7. 生成文档
Rust 支持自动文档生成工具 rustdoc
,并集成到 Cargo 中。运行以下命令可以生成 HTML 文档:
cargo doc --open
8. 发布和分享包
Cargo 支持将项目发布到 Rust 的官方包管理平台 Crates.io。发布时,执行以下命令:
cargo publish
Cargo 的核心文件
1. Cargo.toml
这是项目的配置文件,使用 TOML 格式,用于定义项目的元信息、依赖、构建配置等。
示例:
[package]
name = "my_project"
version = "0.1.0"
authors = ["Your Name <email@example.com>"]
edition = "2021"
[dependencies]
serde = "1.0" # 添加依赖库
2. Cargo.lock
此文件记录了所有依赖库的精确版本,确保项目的构建环境一致。通常无需手动修改。
Cargo 的生态系统
- Crates.io:Rust 的开源包托管平台。开发者可以搜索、下载、发布 Rust 包。
- Cargo Workspaces:支持管理多个相关的子项目,适合大型项目。
常用命令总结
命令 | 功能 |
---|---|
cargo new <name> |
创建新项目 |
cargo init |
初始化现有目录为 Cargo 项目 |
cargo build |
构建项目 |
cargo run |
构建并运行项目 |
cargo test |
运行测试 |
cargo doc --open |
生成并打开文档 |
cargo update |
更新依赖到最新允许版本 |
cargo publish |
发布项目到 Crates.io |
cargo check |
检查代码 |
Hello, Cargo! 示例
创建一个项目并运行:
cargo new hello_cargo
cd hello_cargo
cargo run
输出:
Hello, world!
通过 Cargo,Rust 的开发变得更高效、更组织化,特别是对于依赖管理和构建流程,极大地提升了开发体验。