$ sudo teach IT
Модуль 1 · Первые шаги · Урок 1.1

Что такое Rust

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

Обзор~15 минутНовичок

Для этого курса достаточно уметь открыть терминал и ввести команду. Сегодня программировать мы ещё не будем: разберёмся, что за язык 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 и запустим первую программу.

На следующий урок