Точные данные, размещенные на crates.io, - это ящики внутри пакетов.
A crate - это выходной артефакт компилятора.
Из Справочное руководство по Rust :
Модель компиляции сосредоточена на артефактах, называемых ящиками.Каждая компиляция обрабатывает один ящик в исходной форме и в случае успеха создает один ящик в двоичной форме: либо исполняемый файл, либо какая-либо библиотека.
A package артефакт, управляемый Cargo, менеджером пакетов Rust.
Cargo.toml
файл манифеста определяет пакет с синтаксисом:
[package]
name = "hello_world"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
Пакет может содержать один или несколько ящиков, например одну библиотекуcrate, , названный именем пакета и ноль или более исполняемых ящиков, каждый из которых определен явно в разделе [[bin]]
файла манифеста или неявно, если он находится внутри каталога src/bin
пакета.
В книжке Cargo в качестве псевдонима для пакета используется термин crate.Рассмотрим следующее утверждение, чтобы попытаться немного разобраться в этом:
Обычно * основным артефактом пакета является ящик библиотеки, и, поскольку он идентифицируется с именем пакета, принято рассматривать пакет и ящик каксинонимы.
*: пакет может содержать только двоичный файл, см., например, ripgrep