使用 crate 管理依赖
了解 Cargo 如何管理外部 crate(库),以及如何发布您自己的 crate 供社区使用。
使用 crate 管理依赖 是 CoddyKit 上的免费 Learn Rust Coding 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn Rust Coding 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn Rust Coding 课程共包含 3 节课。
什么是程序包和 Cargo?
在 Rust 中,程序包是编译和分发的基本单位。您可以把它看作包含代码的一个软件包或库。
Cargo 是 Rust 官方的包管理器和构建系统。它负责处理从创建新项目、管理依赖项,到编译代码和运行测试的所有工作。它是您进行 Rust 开发的最佳助手!
`Cargo.toml` 文件
每个由 Cargo 管理的 Rust 项目,其根目录中都有一个 Cargo.toml 文件。这是项目的清单文件,使用 TOML(Tom 的显而易见的极简语言)编写。
它定义了项目的元数据,最重要的是列出了项目的依赖项。
项目配置
Cargo.toml 中的 [package] 部分包含有关程序包的重要信息:
- name:程序包名称。
- version:当前版本。
- edition:要使用的 Rust 版本(例如 2021)。
- authors:创建者。
这些信息非常重要,尤其是当您计划发布程序包时。
添加依赖项
若要在项目中使用外部库(其他程序包),请在 Cargo.toml 的 [dependencies] 部分列出它们。
构建项目时,Cargo 会自动从 Rust 的中央包注册表 crates.io 下载并编译这些依赖项。
依赖项语法
下面展示如何在 Cargo.toml 中声明依赖项:
[dependencies]
rand = "0.8.5"这会告诉 Cargo 获取 rand 程序包的 0.8.5 版本。您也可以指定版本范围或本地路径。
使用程序包:示例
让我们添加 rand 程序包来生成随机数。首先,确保 rand = "0.8.5" 位于 [dependencies] 中。然后,在代码中使用它:
use rand::Rng; // Import the Rng trait
fn main() {
let mut rng = rand::thread_rng(); // Create a random number generator
let n: u8 = rng.gen_range(1..=10); // Generate a number between 1 and 10 (inclusive)
println!("Your random number is: {}", n);
}`Cargo.lock` 文件
使用依赖项进行构建后,Cargo 会创建一个 Cargo.lock 文件。此文件会记录项目中使用的所有直接依赖项和传递依赖项的确切版本。
它可以确保参与项目的每个人都使用相同的依赖项版本,从而在不同环境中实现可重复的构建。
更新依赖项
随着时间推移,您的依赖项可能会发布包含错误修复或新功能的新版本。要更新它们,请使用 cargo update 命令。
此命令会在 crates.io 中检查符合 Cargo.toml 版本要求的较新版本,并相应地更新 Cargo.lock。
发布您自己的程序包
想与社区分享您出色的 Rust 代码吗?您可以将自己的程序包发布到 crates.io!
发布前,请确保 Cargo.toml 包含适当的元数据,例如 description、license 和 repository 链接。
发布命令
操作过程很简单:
- 登录:使用来自 crates.io 的 API 令牌运行
cargo login <token>。 - 发布:在项目的根目录中运行
cargo publish。
Cargo 会执行检查、打包您的代码并上传,使其他人能够使用它!
快速检查:Cargo 与 Crates
以下关于使用 Cargo 管理 Rust 软件包的说法,哪些是正确的?
回顾:管理依赖项
您已经了解 Cargo 对管理 Rust 项目及其依赖项至关重要!
- Crates 是可重复使用的代码包。
- Cargo.toml 定义项目及其依赖项。
- Cargo.lock 确保构建结果可复现。
- 您可以将自己的 crates 发布到 crates.io。
这个强大的系统让 Rust 中的代码共享与复用变得高效且可靠。
常见问题解答
「使用 crate 管理依赖」课时是免费的吗?
是的 — 「使用 crate 管理依赖」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn Rust Coding 课程的其余内容,请升级到 CoddyKit PRO。 Learn Rust Coding 课程共包含 3 节课。
「使用 crate 管理依赖」这节课中我会学到什么?
了解 Cargo 如何管理外部 crate(库),以及如何发布您自己的 crate 供社区使用。 你通过在浏览器中直接运行的动手代码来练习 Learn Rust Coding,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn Rust Coding 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn Rust Coding 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「使用 crate 管理依赖」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn Rust Coding 课中编写并运行代码吗?
能。每节 Learn Rust Coding 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用模块组织代码
- 使用 crate 管理依赖
- 使用 `Result` 进行健壮的错误处理