Glossary
- 词汇表
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
- 源/资源
一个源是一个提供程序,包含箱子,这些箱子可当依赖项的包。有几种源:
- 注册表来源- 见注册表.
- 本地注册表源- 在文件系统上存储为压缩文件的一组包。看到本地注册表来源.
- 目录来源- 在文件系统上存储为未压缩文件的一组包.看到目录来源.
- 路径来源- 位于文件系统上的单个包(例如路径依赖)或一组多个包(如路径覆盖).
- Git 来源- 位于 git 存储库中的包(例如git 依赖要么git 来源).
看到来源更换欲获得更多信息.
Spec
- 看到包 ID 规范.
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
清单位于的目录.