在 Rust 生态系统中,板条箱是帮助我们组织、共享和重用的模块化单元。 本文将深入探讨 Rust Crates、它的概念、结构、功能以及对 Rust 生态系统的重要性。
新手指导计划
板条箱的基本概念
在 Rust 中,crate 是库或二进制可执行文件的集合。 每个 crate 由一个文件和一个或多个 Rust 源文件组成。 该文件描述了板条箱的元数据,包括名称、版本、依赖项等。 这种结构使得 crate 很容易被其他人引用并集成到他们的项目中(通过配置文件 cargo)。toml)。
板条箱
板条箱的生命周期通常遵循以下步骤:
创建一个 crate:我们使用 cargo 工具初始化一个新的 crate,它将生成一个基本的目录结构和一个初始的 cargotoml。
编写:我们在 Crate 中编写 Rust 来实现它们的功能。 **可以包括库、可执行文件或测试。
指定依赖关系:在 cargo 中TOML 文件,我们可以指定板条箱所依赖的其他板条箱及其版本。 这些依赖项由 Cargo 管理,确保项目可以正确构建和运行。
构建和测试:使用 cargo 提供的命令,我们可以构建、测试和运行他们的 CRATE。 cargo 管理编译过程、依赖项解析和测试执行。
发布和共享:当我们认为他们的板条箱已经达到可以共享的状态时,他们可以使用货物将其发布到板条箱中io,它是 Rust 社区的官方包管理器。 其他开发商可以通过货物直接引用这些板条箱,便于共享和重用。
箱子
在 Rust 生态系统中,有两种主要类型的板条箱:
图书馆板条箱
库 crate 旨在提供可重用的功能。 它们包含一组可由其他程序引用和调用的模块和函数。 库 crate 通常用于构建可在不同项目之间共享的通用、可嵌入组件。
二元板条箱
二进制 crate 包含用于直接运行的可执行文件。 这种类型的 crate 通常用于构建独立的应用程序,而不是被其他项目引用。 Rust 的二进制 crate 可用于开发命令行工具、服务器端应用程序等。
依赖关系管理与货物
Cargo 是 Rust 的官方构建工具和包管理器,它极大地简化了 Crates 的依赖管理和构建过程。 按货物toml 文件,我们可以指定项目的依赖关系,并使用简单的命令构建、测试和运行它。
依赖关系语句
在货物中TOML,依赖关系以明确的方式声明。 这包括从属 crate 的名称、版本范围等信息。 cargo 根据这些声明自动管理依赖项,确保项目的构建过程是可重复的。
cargo.汤姆尔
dependencies]
rand = "0.8"
上述货物TOML 是对依赖于常用随机数生成器的库的引用,其版本指定为"0.8"。Cargo 将负责 ** 并将此板条箱集成到项目中。
生成和测试
Cargo 提供了一系列用于构建、测试和运行 Rust 项目的命令。 最常见的包括:
cargo build:编译项目。
cargo test:运行测试。
cargo run:构建并运行可执行文件。
这些命令使开发人员能够轻松管理其项目的生命周期并确保质量和稳定性。
crates.io:Rust 生态系统的中心
crates.IO 是 Rust 生态系统的集中式包存储库。 在这里,我们可以发布和共享他们的 crate,也可以从他们那里获得依赖项。
通过板条箱io,我们可以轻松搜索和发现各种板条箱。 它提供了高级搜索功能、分类浏览和其他工具,使我们能够找到适合他们需求的库。
每个 crate 都有一个唯一的版本号,您可以指定项目对特定版本的 crate 或范围版本的依赖关系。 这种版本控制机制保证了项目的稳定性,并允许我们选择是否升级依赖。
例
演示如何创建 crate 库并在另一个项目中引用它。 我们将创建一个简单的库,它提供了一个用于计算两个数字之和的函数。
1. 创建一个 crate 库。
首先,使用 cargo、crate 创建一个新库。
在终端中执行以下命令。
cargo new my_math_lib --lib
这将创建一个名为'my_math_l
在'my_math_lib/src/li
文件:My Math lib src librs
计算两个数字的总和。
pub fn add(a: i32, b: i32) -i32 ", result);
4. 生成并运行项目。
在我的项目根目录下执行以下命令:
生成项目。
运行项目。
cargo run