Learn Rust Coding · Урок

Крейты и корень крейта

Структура проекта

Урок 4 из 413 шагов

«Крейты и корень крейта» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Модули и mod
  2. pub и видимость
  3. use и пути
  4. Крейты и корень крейта
← Назад к Learn Rust Coding