Для этого курса достаточно уметь открыть терминал и ввести команду. Сегодня программировать мы ещё не будем: разберёмся, что за язык Rust и зачем он нужен, и поставим всё необходимое, чтобы со следующего урока писать настоящий код.
Язык, который ловит ошибки до запуска
Представьте строгого редактора в издательстве. Он не даст книге уйти в печать, пока не исправлены все опечатки и противоречия. Автору иногда обидно, зато читатель никогда не увидит брак. Rust работает с вашим кодом именно так: прежде чем программа запустится, он проверяет её очень придирчиво и отказывается собирать, если находит опасное место.
В C и C++ программы очень быстрые, но за памятью приходится следить вручную, и мелкая ошибка превращается в сбой или дыру в безопасности. В языках со сборщиком мусора (Java, Go, Python) память убирается автоматически, но за это платят скоростью. Rust предлагает третий путь: скорость как у C и C++, но без ручного управления памятью и без сборщика мусора. Безопасность обеспечивают правила, которые компилятор проверяет заранее; главное из них — владение (ownership) — ждёт вас в третьем модуле.
Где его используют: в браузере Firefox, в сервисах Discord и Cloudflare, в ядре Linux и в частях Windows, в консольных утилитах вроде ripgrep (быстрый поиск по файлам). Rust любят там, где важны и скорость, и надёжность.
Компилятор — строгий учитель
Поначалу его сообщения об ошибках раздражают, но они подробные: показывают место, объясняют причину и часто подсказывают исправление. К концу курса вы начнёте ему доверять.
Компилятор, rustc и Cargo
Программу вы пишете в текстовом файле — это исходный код. Процессор такой текст не понимает, ему нужны машинные команды. Переводит одно в другое компилятор — как переводчик, который переводит книгу целиком и отдаёт готовый том. Результат — бинарник, файл, который запускается сам, без Rust на компьютере.
исходный код (.rs) ---> компилятор ---> бинарник (готовая программа)
Компилятор Rust называется rustc. Напрямую его вызывают редко: удобнее Cargo — помощник, который идёт в комплекте с Rust и делает всё одной командой.
Вот команды, которые мы будем использовать на протяжении курса:
cargo new— создать новый проект;cargo run— собрать и сразу запустить программу;cargo build— только собрать;cargo check— быстро проверить код на ошибки, ничего не собирая;cargo test— запустить тесты.
Запоминать их сейчас не нужно: каждую встретим в деле. Проект, которым управляет Cargo, называется пакетом (а единица компиляции — крейтом); наша программа будет одним пакетом.
Установка: rustup
Rust ставится через rustup — официальный установщик и менеджер версий: он скачивает компилятор, Cargo и стандартную библиотеку и потом обновляет их. Курс написан для Rust 1.99 и редакции 2024; версия новее тоже подойдёт.
Windows
Откройте rustup.rs и скачайте rustup-init.exe. Для сборки Rust нужен компоновщик из Microsoft C++ Build Tools; если их нет, установщик предложит их поставить. Согласитесь и выберите вариант по умолчанию. Это самый тяжёлый шаг (несколько гигабайт), наберитесь терпения.
macOS и Linux
Откройте терминал и выполните команду, которую показывает сайт rustup.rs. Сейчас она выглядит так:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Она скачивает установочный скрипт и запускает его. На вопрос о варианте установки нажмите Enter. Если команда на сайте изменилась, берите актуальную.
Проверка
Закройте терминал, откройте новый и проверьте, что всё на месте:
rustc --version
cargo --version
rustc 1.99.0 (...)
cargo 1.99.0 (...)
Метки в скобках у вас будут свои. Важно, что обе команды ответили номером версии.
Разбор по строкам
rustc --version— спрашивает у компилятора, какая он версии;cargo --version— то же самое для Cargo;rustup update— скачивает свежие версии, когда выйдет новая.
Редактор
Код можно писать в любом редакторе. Мы советуем бесплатный VS Code с расширением rust-analyzer: оно подсвечивает ошибки прямо при наборе и даёт подсказки.
Если команда не находится
Чаще всего виноват терминал, открытый до установки. Закройте его и откройте заново.
Что мы построим: «Копилку»
Учиться будем на живом проекте — консольной программе «Копилка» для учёта расходов. Вы вводите команды по-русски, она отвечает:
> добавить 350 еда обед в столовой
Записано: 350 руб., еда, «обед в столовой»
> отчёт
еда: 350 руб.
Всего: 350 руб. из 30000 руб.
К концу курса ваша программа так и заработает. Каждый модуль добавит к ней новый кусок:
- Первые шаги — создание проекта, переменные, типы данных, первая версия копилки;
- Логика программы — функции, условия, циклы и ввод с клавиатуры;
- Строки и владение — главная особенность Rust, разбор команды на слова;
- Структуры и перечисления — описываем трату и категорию как свои типы;
- Коллекции — список трат и отчёт по категориям;
- Ошибки — программа объясняет, что ввели неправильно, и не падает;
- Модули и тесты — раскладываем код по файлам, сохраняем траты, собираем готовую программу.
Обойдёмся только стандартной библиотекой Rust, без сторонних пакетов.
Как устроен курс
Урок состоит из объяснения, короткого теста и (почти везде) задач. Теорию разбираем простыми словами, затем называем термин и смотрим пример с разбором по строкам. Задачи решаются прямо на сайте, в песочнице: Проверить запускает пробные проверки, Отправить прогоняет полный набор и засчитывает решение. Если застряли, подсказки открываются постепенно.
Совет
Печатайте код руками, а не копируйте: так синтаксис запоминается быстрее.
Частые ошибки
На Windows при сборке: link.exe not found
Что видно: при первой сборке не найден link.exe. Почему: не установлены Microsoft C++ Build Tools. Как исправить: запустите установщик Visual Studio Build Tools, отметьте рабочую нагрузку для C++ и повторите сборку.
command not found: cargo
Что видно: терминал не знает команду cargo. Почему: он открыт до установки и не видит новых путей. Как исправить: закройте терминал и откройте новый; если не помогло, перезагрузите компьютер.
Что важно запомнить
- Rust даёт скорость C и C++, но проверяет безопасность памяти заранее, без сборщика мусора.
- Компилятор (
rustc) переводит исходный код в бинарник; он строгий, но его ошибки подробные и подсказывают исправление. - Cargo — помощник, который создаёт проекты, собирает, запускает и тестирует программу.
- Rust ставится через rustup; проверка —
rustc --versionиcargo --version, обновление —rustup update. - Сквозной проект курса — консольная «Копилка» для учёта расходов.
В следующем уроке мы создадим проект командой cargo new и запустим первую программу.