🦀 Полный roadmap по изучению Rust на русском + большой список ресурсов.
Rust Roadmap 2026 на русском - пошаговый план изучения Rust для начинающих и продвинутых разработчиков: синтаксис, ownership, lifetimes, async, unsafe, FFI, тестирование, многопоточность и реальные проекты.
Этот путь рассчитан примерно на 6–12 месяцев активного обучения.
Этап 0. Подготовка окружения (1–3 дня)
- Установка rustup, знакомство с cargo, rustc, clippy, rustfmt.
- Настройка IDE: VS Code + rust-analyzer, RustRover или Neovim + LSP.
- Создание первого проекта cargo new hello_world.
- Команды cargo run, cargo build, cargo test, cargo check, cargo doc --open.
Мини-проект: «Hello, world!» с парсингом аргументов командной строки.
Этап 1. Базовый синтаксис (2–3 недели)
- Переменные, let, mut, константы, шадоуинг.
- Примитивные типы: целые, плавающие, bool, char, кортежи, массивы.
- Управляющие конструкции: if, match, loop, while, for.
- Функции, выражения vs утверждения.
- Модули и use, видимость (pub).
- Документация (///, //!).
Мини-проекты: калькулятор, угадай число, конвертер температур, FizzBuzz.
Этап 2. Владение, заимствование, времена жизни (3–4 недели) — самое важное!
- Стек vs куча, модель памяти.
- Ownership, Move-семантика, Copy/Clone.
- Заимствования &, &mut, правила borrow checker.
- Срезы (&str, &[T]).
- Времена жизни ('a), элизия лайфтаймов.
- Строки: String vs &str, UTF-8.
Мини-проекты: аналог wc, парсер CSV без сторонних крейтов.
Этап 3. Структуры данных и абстракции (3 недели)
- struct, enum, Option, Result.
- Сопоставление с образцом (match, if let, while let).
- Методы и impl.
- Трейты, дефолтные методы.
- Дженерики, ограничения трейтов, where.
- Объекты-трейты dyn Trait, Box<dyn ...>.
- Коллекции: Vec, HashMap, HashSet, BTreeMap, VecDeque.
Мини-проекты: телефонная книга, todo-list в CLI, простой граф.
Этап 4. Обработка ошибок и тестирование (1–2 недели)
- panic!, unwrap, expect.
- Идиоматичная обработка через Result<T, E>, оператор ?.
- Свои типы ошибок, From/Into, крейты thiserror, anyhow.
- Юнит-тесты, интеграционные тесты, doc-тесты.
- Бенчмарки (criterion).
Мини-проект: утилита, читающая файлы и валидирующая их.
Этап 5. Умные указатели и интериор-мутабельность (2 недели)
- Box<T>, Rc<T>, Arc<T>, Cell<T>, RefCell<T>, Mutex<T>, RwLock<T>.
- Циклические ссылки и Weak<T>.
- Deref, Drop, RAII.
- Cow (Clone-on-Write).
Мини-проект: двусвязный список или дерево.
Этап 6. Многопоточность (2–3 недели)
- Потоки std::thread, передача данных через move.
- Каналы mpsc, crossbeam.
- Send, Sync — безопасность данных на уровне типов.
- Атомики AtomicUsize, Ordering.
- Пулы потоков (rayon).
Мини-проект: параллельный word-counter, map-reduce на rayon.
Этап 7. Асинхронное программирование (3–4 недели)
- Future, async/await, runtime (tokio, async-std, smol).
- Стримы (futures::Stream).
- select!, join!, отмена задач.
- Сетевые приложения: TCP/UDP, hyper, reqwest.
Мини-проект: асинхронный HTTP-клиент или чат-сервер.
Этап 8. Макросы и метапрограммирование (2 недели)
- Декларативные макросы macro_rules!.
- Процедурные макросы: derive, attribute, function-like.
- Крейты syn, quote, proc-macro2.
Мини-проект: свой derive(Builder) или мини-DSL.
Этап 9. Unsafe Rust и FFI (2 недели)
- Когда и зачем нужен unsafe.
- Сырые указатели, transmute.
- Работа с C: extern "C", bindgen, cbindgen.
- Memory layout: repr(C), repr(transparent).
- Знакомство с Miri.
Мини-проект: обёртка над C-библиотекой.
Этап 10. Экосистема и реальные проекты
- Web: axum, actix-web, rocket, warp.
- БД: sqlx, diesel, sea-orm, redis-rs.
- Сериализация: serde, serde_json, bincode, prost.
- CLI: clap, indicatif, console.
- Логирование: tracing, log.
- gRPC: tonic.
- Embedded: embedded-hal, ESP32/STM32.
- WebAssembly: wasm-bindgen, yew, leptos, dioxus.
- Геймдев: bevy, macroquad, ggez.
- ML: candle, burn, tch-rs.
Этап 11. Уровень профи
- Профилирование: perf, flamegraph.
- Оптимизация: SIMD, #[inline], layout структур.
- Fuzz-тестирование (cargo-fuzz), property-based (proptest).
- Чтение исходников std, tokio, serde, hyper.
- Контрибьюшн в open-source.
- Публикация крейта на crates.io: документация, CI, semver.
- nightly-фичи, RFC, развитие языка.