$ sudo teach IT
Модуль 1 · Введение

Первый проект с Cargo

Создаём проект, разбираем структуру папок, запускаем первый код. После этого урока вы поймёте базовый рабочий цикл Cargo.

🛠️ Практика 🕐 ~20 минут 🔰 Для новичков
🆕

cargo new — создание проекта

Откройте терминал. Перейдите в папку, где хотите хранить проекты (например, домашняя папка или Documents). Выполните:

Терминал
cargo new my_project

Cargo выведет:

     Created binary (application) `my_project` package

Всё. Проект создан. Cargo сделал за вас:

  • Создал папку my_project/
  • Написал конфигурационный файл Cargo.toml
  • Создал папку src/ и положил туда стартовый файл main.rs
  • Инициализировал git-репозиторий с .gitignore
🗂️

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

Структура проекта my_project/
my_project/
├── Cargo.toml      ← описание проекта и зависимости
├── Cargo.lock      ← точные версии зависимостей (появится после первой сборки)
├── .gitignore      ← игнорирует папку target/
└── src/
    └── main.rs     ← ваш код
Cargo.toml — манифест проекта

Главный файл конфигурации. Описывает: название проекта, версию, зависимости. Как package.json в Node.js или pyproject.toml в Python.

Cargo.toml · Содержимое по умолчанию
[package]
name = "my_project"   # название проекта
version = "0.1.0"     # версия
edition = "2021"      # версия языка Rust

[dependencies]
# сюда добавляются библиотеки
Cargo.lock — фиксация версий

Создаётся Cargo автоматически после первой сборки. Хранит точные версии всех зависимостей. Это гарантирует, что проект соберётся одинаково на любой машине. Файл генерируется Cargo — вручную его не редактируют. Для приложений — коммитьте в git. Для библиотек — добавьте в .gitignore.

src/main.rs — точка входа

Cargo кладёт сюда стартовый код:

fn main() {
    println!("Hello, world!");
}
target/ — папка с артефактами сборки (появится после cargo build)

Cargo кладёт сюда скомпилированный бинарник и промежуточные файлы. Эта папка не коммитится в git — поэтому Cargo сразу добавляет target/ в .gitignore. Папка может весить несколько гигабайт — Cargo кэширует много промежуточного результата. Удаляется командой cargo clean.

⌨️

Три основные команды

cargo run · Скомпилировать и запустить
cd my_project
cargo run

Cargo скомпилирует проект и сразу запустит. Вывод:

   Compiling my_project v0.1.0 (/home/user/my_project)
    Finished dev [unoptimized + debuginfo] target(s) in 0.62s
     Running `target/debug/my_project`
Hello, world!
Первая строка — Cargo компилирует.
Вторая — сборка завершена, профиль dev (без оптимизаций).
Третья — Cargo запускает бинарник из target/debug/.
Последняя — вывод вашей программы.
cargo build · Только скомпилировать
cargo build

Компилирует, но не запускает. Бинарник окажется в target/debug/my_project (на Windows: .exe). Используйте когда нужно просто собрать проект, например для CI.

Для оптимизированной сборки (продакшен): cargo build --release → бинарник в target/release/
cargo check · Проверить без сборки
cargo check

Проверяет код на ошибки без создания бинарника. Работает в 2–5 раз быстрее cargo build. Используйте во время разработки, когда хотите быстро проверить правильность кода. Не создаёт никаких файлов в target/.

Когда что использовать:
cargo checkВо время написания кода — быстрая проверка ошибок
cargo runХочу запустить и увидеть результат
cargo buildХочу собрать бинарник, не запуская
cargo build --releaseФинальная сборка для продакшена
🗑️

cargo clean — очистка артефактов

Терминал
cargo clean

Удаляет всю папку target/. Помогает когда: хотите освободить место на диске, нужна чистая сборка с нуля, возникли странные ошибки компиляции. После clean следующий cargo build займёт больше времени — всё пересобирается заново.

✏️

Задача

Условие

Выполните следующую последовательность действий. После каждого шага запишите что именно Cargo вывел в терминале.

  1. Создайте новый проект командой cargo new cargo_practice
  2. Перейдите в папку проекта: cd cargo_practice
  3. Выполните cargo check — убедитесь, что ошибок нет
  4. Выполните cargo run — убедитесь, что выводится Hello, world!
  5. Откройте Cargo.toml — найдите строку name и убедитесь, что там "cargo_practice"
  6. Выполните cargo build --release — найдите созданный бинарник в target/release/
  7. Выполните cargo clean — убедитесь, что папка target/ удалилась

Решение

Терминал · Полная последовательность
cargo new cargo_practice
cd cargo_practice
cargo check
cargo run
cat Cargo.toml          # или открыть в редакторе
cargo build --release
ls target/release/      # на Windows: dir target\release\
cargo clean
ls                      # папки target/ больше нет

Ключевые наблюдения: после cargo run появилась папка target/debug/. После cargo build --release появилась target/release/. После cargo clean обе исчезли. cargo check — самый быстрый, не создаёт бинарников.

📌 Что важно запомнить
→ cargo new имя создаёт готовую структуру: Cargo.toml, src/main.rs, .gitignore
→ cargo run = скомпилировать + запустить; cargo build = только скомпилировать
→ cargo check — самый быстрый способ найти ошибки, без создания бинарника
→ cargo build --release — для продакшена, с оптимизациями
→ cargo clean удаляет target/ и освобождает место
→ Cargo.lock коммитим в git для приложений, игнорируем для библиотек