О разделе
Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.
Rust — компилируемый язык с проверкой безопасности памяти на этапе компиляции: владение, заимствование и borrow checker вместо сборщика мусора. Подходит для системного кода, CLI, WebAssembly, высоконагруженных сервисов и всего, где важны предсказуемость и скорость.
Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.
Модель владения заменяет часть ошибок гонок на этапе компиляции. Теория — синхронизация и гонки
в Rust — std::thread, tokio, типы Send/Sync.
Перед ООП-паттернами в Rust: парадигмы и ООП в разделе "Код".
Выберите один язык для старта, пройдите маршрут до первой программы — затем переходите дальше; иначе правила владения смешаются с GC из Java или Python.
В типах и владении правила borrow checker сначала объясняются псевдокодом, затем — синтаксисом Rust.
Рекомендуемый маршрут
| Шаг | Материал | Зачем |
|---|---|---|
| 0 | Что повторить перед Rust | Базовые термины (по желанию) |
| 1 | Первая программа | rustup, cargo new, cargo run |
| 1a | fn main() — бинарный crate | main.rs vs lib.rs |
| 2 | Основы → Синтаксис | Компилятор, модули, стиль |
| 3 | Типы и владение | Главная тема Rust |
| 3a | Теория ошибок → обработка в Rust | Result, panic! |
| 4 | Управление → Ошибки | match, Result, ? |
| 5 | ООП-паттерны → Трейты | Без классического наследования |
| 6 | Тестирование → Cargo workspace | Практика в проекте |
| 7 | Async → Потоки | Когда что выбирать |
| 8 | Axum | HTTP после базы |
| — | СУБД из Rust | PostgreSQL, MySQL, SQLite, SQL Server |
| 9 | Чек-лист | Самопроверка |
Частые ошибки при старте
| Ошибка | Что делать |
|---|---|
Борьба с borrow checker без cargo run | Компилируйте каждый пример |
Сразу Tokio + Axum без 13 и 171 | Сначала владение и Result |
Везде clone() | Поймите, где достаточно &T |
Что попробовать
- Первая программа — измените вывод и пересоберите проект.
- Получите ошибку borrow checker и прочитайте подсказку компилятора.
- Один unit-тест по тестированию.
Зачем этот раздел
Подборка по Rust в энциклопедии: синтаксис, первая программа и смежные темы. Выберите один язык для старта, пройдите маршрут до первой рабочей программы — затем переходите к следующему языку или стеку.
С чего начать
| Шаг | Материал | Зачем |
|---|---|---|
| 1 | Первая программа | Запуск и синтаксис |
| 2 | Axum | Углубление |
Частые ошибки при старте
| Ошибка | Что делать |
|---|---|
| Прыжки между языками | Закройте одну "первую программу", потом сравнивайте |
| Код без запуска | Выполните пример локально |
| Сразу большой фреймворк | Сначала база раздела, потом REST/UI |
Что попробовать
- Шаг 1 из таблицы.
- Три непонятных термина — найдите статьи в оглавлении раздела.
- Другой язык — только после своей рабочей первой программы.
Play ITЗагрузка интерактивного демо…
Play ITЗагрузка интерактивного демо…
История языка Rust
История Rust - путь языка от эксперимента до промышленного стандарта безопасного системного программирования.
Что требуется знать перед началом изучения языка программирования Rust
Rust — это многопарадигменный язык программирования общего назначения, который фокусируется на безопасности памяти, производительности и параллелизме.
Рекомендации по разработке на Rust
Набор советов, правил, принципов и обычаев в разработке на этом языке.
Rust для начинающих
Rust для практики: владение, ссылки, lifetimes, ошибки, коллекции и базовые идиомы без потери скорости и безопасности.
Простые приложения на Rust
Простые приложения на Rust — CLI, файлы, JSON и минимальный HTTP на stdlib и tokio.
Основы языка Rust
fn - ключевое слово, которое обозначает начало объявления функции. Функция представляет собой именованный блок кода, выполняющий конкретную задачу. В данном случае функция называется main.
Экосистема приложений на Rust
Экосистема приложений на Rust - направления применения языка и ключевые инструменты промышленной разработки.
Системное программирование на Rust
Системное программирование на Rust - низкоуровневый контроль, безопасность памяти и надёжные инфраструктурные компоненты.
Синтаксис и пунктуация в Rust
Кавычки, точки, запятые, скобки и прочие знаки препинания.
Ключевые слова языка Rust
Ключевые слова Rust - назначение операторов и зарезервированных идентификаторов в синтаксисе языка.
Встроенные функции и стандартная библиотека
Встроенные функции и стандартная библиотека Rust - базовые макросы, атрибуты и инструменты тестирования.
Типы данных и владение памятью
Типизация, набор правил определения типа данных значений языка.
Управляющие конструкции и циклы в Rust
Управляющие конструкции и циклы в Rust - `if`, `match`, `loop/while/for` и контроль потоков с акцентом на безопасность.
Объектно-ориентированные концепции в Rust
ООП-концепции в Rust — композиция, трейты и инкапсуляция через модули, без классического наследования.
Фреймворки и инструменты Rust
Фреймворки и инструменты Rust - ключевые библиотеки, экосистема crates и практики выбора стека под задачу.
Работа с данными и структурами
Работа с данными в Rust - драйверы СУБД, структуры данных и организация безопасного доступа к хранилищам.
Асинхронное программирование в Rust
Асинхронное программирование в Rust - `async/await`, executors и безопасная конкуренция без потери производительности.
Обработка ошибок в Rust
Обработка ошибок происходит явно через сопоставление с образцом (match), макросы (?), или комбинаторы (map, and_then и т.д.).
Важные трейты и типы Rust
Трейты — это сердце системы типов Rust. Они определяют поведение, которое может быть реализовано любым типом. Некоторые трейты имеют особый статус и влияют на семантику языка.
Популярные проекты на Rust
Популярные проекты на Rust - реальные open-source решения и практическое применение языка в продакшене.
Первая программа на Rust
Гайд по установке и настройке с написанием первой программы и её запуском.
Первая программа на Axum
REST API на Axum и Tokio — маршруты, JSON, extractors и состояние приложения с пояснениями для новичка.
Тестирование в Rust
cargo test, unit- и интеграционные тесты, table-driven, #[tokio::test], mockall и проверка HTTP.
Потоки и синхронные каналы в Rust
std::thread, mpsc, Mutex, Arc, Send/Sync — когда потоки, когда async, с разбором для новичка.
Cargo — workspace, features и профили
Структура репозитория, bin/lib, workspace, features, профили dev/release и build.rs — с пояснениями.
FFI на практике в Rust
extern "C", repr(C), bindgen, build.rs и безопасные обёртки над нативным кодом — пошагово для новичка.
GUI на Windows — выбор стека
Win32, WinUI, Tauri, Slint, Iced, egui — когда какой стек выбрать для Rust под Windows, с пояснениями для новичка.
Справочник по языку Rust
Структуры — это пользовательские составные типы данных. Rust поддерживает три вида структур.
fn main() — бинарный crate и библиотека Rust
Точка входа cargo run, разница между [lib] и [[bin]], и зачем примеры живут в mod tests или examples/.
Rust — итоги
Итоги раздела «Rust» — FAQ и краткие ответы по теме.
Rust — чек-лист
Чек-лист раздела «Rust» — вопросы для самопроверки.
Rust — о разделе
Rust — владение, Cargo, async и Axum; сравнение с C++ и Go, системное программирование и безопасность памяти.
Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Системное программирование — C++ — о разделе, Ассемблер — о разделе, Системное программирование на C++, Си — о разделе, Оптимизация размера и производительности приложений, Выполнение кода — о разделе.
Бэкенд и серверная разработка — Groovy — о разделе, Swift — о разделе, Ruby — о разделе, Lua и Luau — о разделе, Go — о разделе, Cobol — о разделе.