0Pricing
Learn Rust Coding · Урок

Управление зависимостями с помощью пакетов

Разберитесь, как Cargo управляет внешними пакетами (библиотеками) и как публиковать собственные пакеты для использования сообществом.

«Управление зависимостями с помощью пакетов» — бесплатный урок Learn Rust Coding на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn Rust Coding, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn Rust Coding содержит 3 уроков всего.

Что такое крейты и Cargo?

В Rust крейты — это базовые единицы компиляции и распространения. Представьте их как пакеты или библиотеки, содержащие ваш код.

Cargo — официальный менеджер пакетов и система сборки Rust. Он отвечает за всё: от создания новых проектов до управления зависимостями, компиляции кода и запуска тестов. Это ваш лучший помощник при разработке на Rust!

Файл `Cargo.toml`

В каждом проекте Rust, управляемом Cargo, в корневом каталоге есть файл Cargo.toml. Это файл манифеста проекта, записанный в формате TOML (Tom's Obvious, Minimal Language).

В нём задаются метаданные проекта и, что особенно важно, перечисляются его зависимости.

Конфигурация проекта

Раздел [package] в Cargo.toml содержит важную информацию о вашем крейте:

  • name: имя крейта.
  • version: его текущая версия.
  • edition: используемая редакция Rust (например, 2021).
  • authors: сведения о создателях.

Эти данные особенно важны, если вы планируете опубликовать свой крейт.

Добавление зависимостей

Чтобы использовать внешние библиотеки (другие крейты) в проекте, перечислите их в разделе [dependencies] файла Cargo.toml.

При сборке проекта Cargo автоматически загружает и компилирует эти зависимости из crates.io — центрального реестра пакетов Rust.

Синтаксис зависимостей

Вот как объявляется зависимость в Cargo.toml:

[dependencies] rand = "0.8.5"

Это указывает Cargo загрузить версию 0.8.5 крейта rand. Также можно задавать диапазоны версий или локальные пути.

Пример использования крейта

Добавим крейт rand, чтобы генерировать случайное число. Сначала убедитесь, что rand = "0.8.5" находится в разделе [dependencies]. Затем используйте его в коде:

use rand::Rng; // Import the Rng trait

fn main() {
  let mut rng = rand::thread_rng(); // Create a random number generator
  let n: u8 = rng.gen_range(1..=10); // Generate a number between 1 and 10 (inclusive)
  println!("Your random number is: {}", n);
}

Файл `Cargo.lock`

После сборки с зависимостями Cargo создаёт файл Cargo.lock. В этом файле записываются точные версии всех прямых и транзитивных зависимостей, используемых в проекте.

Это гарантирует, что все участники проекта используют одинаковые версии зависимостей, обеспечивая воспроизводимую сборку в разных окружениях.

Обновление зависимостей

Со временем для зависимостей могут выпускаться новые версии с исправлениями ошибок или новыми возможностями. Для их обновления используется команда cargo update.

Эта команда проверяет crates.io на наличие более новых версий, соответствующих требованиям к версиям в Cargo.toml, и соответственно обновляет Cargo.lock.

Публикация собственного крейта

Хотите поделиться своим замечательным кодом на Rust с сообществом? Вы можете опубликовать собственный крейт на crates.io!

Перед публикацией убедитесь, что в Cargo.toml указаны необходимые метаданные, например description, license и ссылки repository.

Команды публикации

Процесс прост:

  1. Войдите: используйте cargo login <token> с токеном API от crates.io.
  2. Опубликуйте: выполните cargo publish из корневого каталога проекта.

Cargo выполнит проверки, упакует ваш код и загрузит его, чтобы другие могли им пользоваться!

Быстрая проверка: Cargo и крейты

Какие из приведённых утверждений об управлении пакетами Rust с помощью Cargo верны?

Повторение: управление зависимостями

Вы узнали, насколько важен Cargo для управления проектами Rust и их зависимостями!

  • Крейты — это повторно используемые пакеты кода.
  • Cargo.toml описывает проект и его зависимости.
  • Cargo.lock обеспечивает воспроизводимую сборку.
  • Вы можете публиковать собственные крейты на crates.io.

Эта мощная система делает обмен кодом и его повторное использование в Rust невероятно эффективными и надёжными.

Часто задаваемые вопросы

Урок «Управление зависимостями с помощью пакетов» бесплатный?

Да — полный текст урока «Управление зависимостями с помощью пакетов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn Rust Coding, подпишись на CoddyKit PRO. Курс Learn Rust Coding содержит 3 уроков всего.

Чему я научусь в уроке «Управление зависимостями с помощью пакетов»?

Разберитесь, как Cargo управляет внешними пакетами (библиотеками) и как публиковать собственные пакеты для использования сообществом. Ты практикуешь Learn Rust Coding с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn Rust Coding?

Предыдущий опыт не требуется. Learn Rust Coding на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «Управление зависимостями с помощью пакетов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn Rust Coding?

Да. Каждый урок Learn Rust Coding включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

  1. Организация кода с помощью модулей
  2. Управление зависимостями с помощью пакетов
  3. Надёжная обработка ошибок с помощью `Result`
← Назад к Learn Rust Coding