词汇表

glossary.md   Commit: b54748ef1c8789364c2322b14019270a0508fd25

Artifact

  • 工件

一个Artifact是由编译过程创建的文件或文件集。这包括可链接库和可执行二进制文件.

Crate

  • 箱 (包/库, 又一抽象名)

包中的每个目标都是。Crates 是库或可执行二进制文件。它可能松散地引用目标的源代码或目标生成的编译工件。一个箱也可以指从注册表中提取的压缩包.

Edition

  • 版本

一个Rust Edition是 Rust 语言的开发里程碑。该一个包的版本Cargo.toml清单中指定,各个目标可以指定它们使用的版本。见版本指南欲获得更多信息.

Feature

  • 特性/特征/功能

一个特征是一个允许条件编译的命名标志参数。一个特性可以引用可选的依赖项,或者在 一个Cargo.toml 中定义的任意名称,可以键入(使用到)源代码中。

Cargo 有不稳定的特征标志,这可以用来实现 Cargo 本身的实验行为。Rust 编译器和 Rustdoc 也有自己的不稳定特征标志(参见不稳定的书Rustdoc 书).

Index

  • 索引是注册表中,可搜索的包的列表.

Lock file

  • (锁定/锁) 文件

Cargo.lock,名:锁定文件,是一个文件,用于捕获工作空间或包中使用的每个依赖项的确切版本,它由 Cargo 自动生成。看到Cargo.toml 与 Cargo.lock.

Manifest

  • 清单/元信息

一个清单是对包或工作空间的描述,名为Cargo.toml.

一个虚拟清单是一个Cargo.toml,仅描述工作空间的文件,不包含包。

Member

  • 会员/成员

一个成员是属于工作空间的一个包.

Package

一个是源文件和描述包的清单Cargo.toml的集合。包具有名称和版本,用于指定包之间的依赖关系。包中包含多个目标,这些目标是库或可执行二进制文件。

包根Cargo.toml清单位于的包的目录。

包 ID 规范, 要么SPEC,是一个字符串,用于辨识从特定源,引用特定版本的包唯一性。

Project

  • 包/项目

package的另一个名字.

Registry

  • 注册表

一个注册处是一种服务,包含可下载的包,可以安装或用作包的依赖项.默认注册表是crates.io。注册表有一个索引,其中包含所有包装箱的清单,并告诉 Cargo 如何下载所需的箱。

Source

  • 源/资源

一个是一个提供程序,包含箱子,这些箱子可当依赖项的包。有几种源:

看到来源更换欲获得更多信息.

Spec

Target

  • 目标

Target这个词的意思,取决于具体情况:

  • Cargo 目标 - Cargo 项目会有target,其具有对应将要生成的工件。项目可以包含库,二进制,示例,测试和基准目标。该目标列表配置在Cargo.toml清单,通常由源文件的目录布局自动推断的。
  • 目标架构- 构建工件的 OS 和机器体系结构,通常称为一个目标
  • 目标 三元(Triple)- 三元组是用于指定目标体系结构的特定格式。见clang 文档 了解详情。三元组可以称为 一个目标三元,此为产生的工件的架构,以及主机三元,此为编译器运行的体系结构。可以使用--target命令行选项或build.target [配置选项]指定目标三元组。
  • 目标目录- Cargo 将所有构建的工件和中间文件放入target目录。默认情况下,这是一个名为target的目录会在工作区根目录,或者包根(如果不使用工作空间)。目录随着--target-dir命令行选项,CARGO_TARGET_DIR 环境变量, 或者build.target-dir 配置选项改变而改变.

“target-triple (目标 三元)" 是 编译器的 专用术语,用 “ cpu- vendor- os" 来标识 交叉编译时的 系统类型

Test Targets

Cargo测试目标生成二进制文件,帮助验证代码的正确操作和正确性。有两种类型的测试工件:

  • 单元测试- 一个单元测试是直接从库或二进制目标编译的可执行二进制文件。它包含库或二进制代码的全部内容,并运行#[test]注释函数,用于验证各个代码单元。
  • 集成测试目标- 一个集成测试目标是一个来自测试目标的可执行的二进制文件,这是一个独特的箱子,其来源位于tests目录或由在Cargo.toml清单里面的[[test]]指定。它旨在仅测试库的公共 API,或执行二进制文件以验证其操作。

Workspace

  • 工作区

一个工作区是一个共享公共依赖项解析(具有共享Cargo.lock),输出目录和各种设置,如配置文件,的一个或多个包的集合。

一个虚拟工作区Cargo.toml清单根目录的工作空间, 没有定义包,只列出工作区成员。

工作区根是工作区的Cargo.toml清单位于的目录.