Крейты и корень крейта
Структура проекта
«Крейты и корень крейта» — бесплатный урок Learn Rust Coding на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn Rust Coding, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn Rust Coding содержит 4 уроков всего.
Что такое пакет
Пакет — это наименьшая единица, с которой работает компилятор Rust. Существуют два вида: бинарный пакет, компилируемый в исполняемый файл, и библиотечный пакет, от которого зависит другой код.
Бинарный и библиотечный пакеты
Бинарный пакет содержит функцию main и создаёт программу, которую можно запустить. В библиотечном пакете нет main; он предоставляет повторно используемые элементы другим пакетам.
- Корень бинарного пакета:
src/main.rs - Корень библиотечного пакета:
src/lib.rs
Корень пакета
Корень пакета — это исходный файл, с которого начинает работу компилятор. Он находится на вершине дерева модулей, а ключевое слово crate в пути обозначает его.
fn main() {
crate::greet();
}
fn greet() {
println!("hello from the crate root");
}Cargo и пакеты
Пакет проекта — это один или несколько пакетов, управляемых Cargo и описанных в Cargo.toml. Пакет проекта содержит не более одного библиотечного пакета и любое количество бинарных пакетов.
Cargo отвечает за сборку, выполнение тестов и зависимости.
Минимальный Cargo.toml
Манифест объявляет имя, версию и зависимости проекта. Cargo читает его, чтобы знать, как собирать проект.
[package]— имя, версия, редакция[dependencies]— внешние пакеты
Стандартная структура проекта
Cargo ожидает общепринятую структуру:
src/main.rs— корень бинарного пакетаsrc/lib.rs— корень библиотечного пакетаsrc/bin/— дополнительные бинарные файлыtests/— интеграционные тесты
Следование соглашению означает отсутствие необходимости в настройке.
Модули находятся под корнем
Корень пакета может объявлять модули, образующие дерево модулей. Всё созданное вами подключается к этому единственному корневому файлу.
mod utils {
pub fn shout(s: &str) -> String {
s.to_uppercase()
}
}
fn main() {
println!("{}", utils::shout("crate"));
}Разделение на файлы
Когда корень объявляет mod utils; с точкой с запятой, Cargo загружает src/utils.rs. Содержимое файла становится телом этого модуля, сохраняя единое дерево в нескольких файлах.
Использование библиотеки из бинарного пакета
В проекте, содержащем и lib.rs, и main.rs, бинарный пакет обращается к библиотеке по имени проекта. Библиотека открывает элементы с pub, которые использует бинарный пакет.
Такое разделение оставляет логику в библиотеке, а точку входа — компактной.
Добавление зависимостей
Выполните cargo add rand или измените раздел [dependencies] в Cargo.toml. Cargo загружает пакет с crates.io и делает его доступным для use.
Cargo также фиксирует точные версии в Cargo.lock для воспроизводимых сборок.
Общая картина
От меньшего к большему: модуль < пакет < проектный пакет. Модули организуют пакет; корень пакета закрепляет дерево; проектный пакет и Cargo объединяют всё это.
Быстрая проверка
Проверьте свои знания структуры проекта.
Итоги
Вы изучили структуру проекта:
- Пакет бывает бинарным или библиотечным
- Корень пакета (
main.rsилиlib.rs) закрепляет дерево модулей - Проектный пакет объединяет пакеты и описывается в
Cargo.toml - Cargo управляет структурой, сборкой и зависимостями
Изучай Rust с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 39
- Уроки
- 144
Часто задаваемые вопросы
Урок «Крейты и корень крейта» бесплатный?
Да — полный текст урока «Крейты и корень крейта» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn Rust Coding, подпишись на CoddyKit PRO. Курс Learn Rust Coding содержит 4 уроков всего.
Чему я научусь в уроке «Крейты и корень крейта»?
Структура проекта Ты практикуешь Learn Rust Coding с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn Rust Coding?
Предыдущий опыт не требуется. Learn Rust Coding на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Крейты и корень крейта»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn Rust Coding?
Да. Каждый урок Learn Rust Coding включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Модули и mod
- pub и видимость
- use и пути
- Крейты и корень крейта