Содержание курса
1. Модуль 1. Старт
4 урока
178
99
39м
0
Закрытый
1.1
Установка Rust: toolchain, cargo, rustup. Первая программа
↗
78
38
11м 7с
0
Закрытый
1.2
Типы данных, переменные, mut и shadowing
↗
41
25
8м 6с
0
Закрытый
1.3
Функции, выражения и управление потоком
↗
33
20
9м 35с
0
Закрытый
1.4
Практика: CLI-калькулятор с обработкой ввода
↗
26
16
11м 3с
0
2. Модуль 2. Ownership
4 урока
86
43
48м
0
Открытый
2.1
Ownership и borrowing
↗
29
13
5м 3с
0
Открытый
2.2
Стек vs куча. Move-семантика
↗
21
11
10м 46с
0
Открытый
2.3
References и правила заимствования. Slice-типы
↗
17
11
8м 19с
0
Открытый
2.4
Практика: утилита для поиска дубликатов файлов
↗
19
8
25м 52с
0
3. Модуль 3. Структуры данных
5 уроков
43
31
3м
0
Открытый
3.1
Structs, enums и pattern matching
↗
12
6
3м 28с
0
Открытый
3.2
Option и Result
↗
9
6
-
0
Открытый
3.3
Коллекции: Vec, HashMap, HashSet, BTreeMap
↗
7
6
-
0
Открытый
3.4
Итераторы и замыкания
↗
7
5
-
0
Открытый
3.5
Практика: in-memory key-value хранилище
↗
8
8
-
0
4. Модуль 4. Обработка ошибок и модули
3 урока
17
9
0м
0
Открытый
4.1
Паника vs Result. Оператор ?
↗
7
3
-
0
Открытый
4.2
Модульная система Rust
↗
5
3
-
0
Открытый
4.3
Практика: рефакторинг KV-хранилища
↗
5
3
-
0
5. Модуль 5. Traits и дженерики
3 урока
11
5
0м
0
Открытый
5.1
Traits: определение и реализация
↗
5
2
-
0
Открытый
5.2
Дженерики и trait bounds
↗
3
2
-
0
Открытый
5.3
Практика: универсальный парсер конфигов
↗
3
1
-
0
6. Модуль 6. Умные указатели и паттерны
3 урока
9
3
0м
0
Открытый
6.1
Умные указатели: Box, Rc, Arc
↗
3
1
-
0
Открытый
6.2
Interior mutability и паттерны
↗
2
1
-
0
Открытый
6.3
Практика: сборщик зависимостей
↗
4
1
-
0
7. Модуль 7. Concurrency
3 урока
12
3
0м
0
Открытый
7.1
Потоки и каналы
↗
5
1
-
0
Открытый
7.2
Shared state и параллелизм данных
↗
4
1
-
0
Открытый
7.3
Практика: многопоточный веб-скрейпер
↗
3
1
-
0
8. Модуль 8. Async Rust
3 урока
11
3
0м
0
Открытый
8.1
Futures и async/await
↗
1
1
-
0
Открытый
8.2
Tokio runtime
↗
5
1
-
0
Открытый
8.3
Практика: асинхронный TCP-чат
↗
5
1
-
0
9. Модуль 9. Веб-разработка
3 урока
10
3
0м
0
Открытый
9.1
Axum: роутинг и extractors
↗
3
1
-
0
Открытый
9.2
База данных и аутентификация
↗
3
1
-
0
Открытый
9.3
Практика: REST API для задач
↗
4
1
-
0
10. Модуль 10. Системное программирование
3 урока
11
3
0м
0
Открытый
10.1
Файлы, сокеты, байты
↗
5
1
-
0
Открытый
10.2
Unsafe Rust и FFI
↗
3
1
-
0
Открытый
10.3
Практика: grep с memory-mapped файлами
↗
3
1
-
0
11. Модуль 11. CLI и инструменты
2 урока
5
2
0м
0
Открытый
11.1
clap, indicatif, tracing
↗
2
1
-
0
Открытый
11.2
Практика: CLI-монитор системы
↗
3
1
-
0
12. Модуль 12. Тестирование и качество
3 урока
7
2
0м
0
Открытый
12.1
Тесты, моки, бенчмарки
↗
3
1
-
0
Открытый
12.2
CI/CD и инструменты качества
↗
2
1
-
0
Открытый
12.3
Практика: тесты для REST API
↗
2
0
-
0
13. Модуль 13. Макросы и метапрограммирование
3 урока
9
0
0м
0
Открытый
13.1
Declarative macros
↗
4
0
-
0
Открытый
13.2
Procedural macros
↗
2
0
-
0
Открытый
13.3
Практика: derive-макрос валидации
↗
3
0
-
0
14. Модуль 14. WASM
2 урока
11
0
0м
0
Открытый
14.1
Rust и WebAssembly
↗
6
0
-
0
Открытый
14.2
Практика: обработка изображений
↗
5
0
-
0
15. Модуль 15. Базы данных с sqlx
7 уроков
18
11
0м
0
Открытый
15.1
Зачем нужен sqlx: compile-time проверка SQL
↗
2
2
-
0
Открытый
15.2
Подключение к Postgres и пул соединений
↗
3
3
-
0
Открытый
15.3
Запросы, биндинги и маппинг в структуры
↗
2
2
-
0
Открытый
15.4
Транзакции и обработка ошибок БД
↗
2
2
-
0
Открытый
15.5
Миграции через sqlx-cli
↗
2
2
-
0
Открытый
15.6
Тест знаний: sqlx
↗
4
0
-
0
Открытый
15.7
Практика: CRUD для задач через sqlx
↗
3
0
-
0
16. Модуль 15. Финальный проект
3 урока
17
1
0м
0
Открытый
16.1
Архитектура финального проекта
↗
7
0
-
0
Открытый
16.2
Реализация и рефакторинг
↗
6
0
-
0
Открытый
16.3
Документация, бенчмарки, релиз
↗
4
1
-
0
17. Бонус-модуль. Парсинг в Rust
3 урока
17
3
0м
0
Открытый
17.1
Основы парсинга: nom и комбинаторы
↗
6
1
-
0
Открытый
17.2
Парсинг структурированных форматов с pest
↗
6
1
-
0
Открытый
17.3
Практика: свой парсер языка разметки
↗
5
1
-
0
18. Модуль 16. Unsafe Rust и FFI
7 уроков
8
4
0м
0
Открытый
18.1
Когда и зачем нужен unsafe
↗
1
1
-
0
Открытый
18.2
Raw pointers и контракты безопасности
↗
2
2
-
0
Открытый
18.3
FFI: вызов C-функций из Rust
↗
0
0
-
0
Открытый
18.4
Экспорт Rust-функций в C через extern "C"
↗
1
1
-
0
Открытый
18.5
repr(C) и передача структур через границу
↗
0
0
-
0
Открытый
18.6
Тест знаний: unsafe и FFI
↗
1
0
-
0
Открытый
18.7
Практика: безопасная обёртка над raw-указателем
↗
3
0
-
0
19. Модуль 17. Производительность и профилирование
7 уроков
6
3
0м
0
Открытый
19.1
Zero-cost абстракции: что это на практике
↗
2
2
-
0
Открытый
19.2
Бенчмарки через criterion
↗
1
1
-
0
Открытый
19.3
Flamegraph и поиск горячих точек
↗
0
0
-
0
Открытый
19.4
Аллокации и как их уменьшать
↗
0
0
-
0
Открытый
19.5
Inline, LTO и профили сборки
↗
0
0
-
0
Открытый
19.6
Тест знаний: производительность
↗
0
0
-
0
Открытый
19.7
Практика: оптимизация горячего цикла
↗
3
0
-
0
20. Модуль 20. Продвинутый async и собственный runtime
15 уроков
17
10
0м
0
Открытый
20.1
20.1 Как работает async/await: state machine
↗
4
4
-
0
Открытый
20.2
20.2 Трейт Future изнутри
↗
0
0
-
0
Открытый
20.3
20.3 Pin и самоссылочные структуры
↗
0
0
-
0
Открытый
20.4
20.4 Waker и Context: сердце асинхронности
↗
1
1
-
0
Открытый
20.5
20.5 Пишем минимальный executor
↗
1
1
-
0
Открытый
20.6
20.6 Reactor и интеграция с ОС
↗
1
1
-
0
Открытый
20.7
20.7 Многопоточный runtime и work-stealing
↗
0
0
-
0
Открытый
20.8
20.8 Tokio изнутри
↗
1
1
-
0
Открытый
20.9
20.9 Структурная конкурентность и отмена
↗
0
0
-
0
Открытый
20.10
20.10 Async-трейты и динамическая диспетчеризация
↗
1
1
-
0
Открытый
20.11
20.11 Стримы и асинхронные итераторы
↗
0
0
-
0
Открытый
20.12
20.12 Отладка и профилирование async-кода
↗
1
1
-
0
Открытый
20.13
20.13 Тест знаний: async internals
↗
0
0
-
0
Открытый
20.14
20.14 Практика: свой async runtime mini-tokio
↗
1
0
-
0
Открытый
20.15
20.15 Практика: высокопроизводительный TCP-прокси
↗
6
0
-
0