Добро пожаловать в учебник по языку программирования Rust! Этот репозиторий содержит полный курс, охватывающий все темы — от базового синтаксиса до продвинутых концепций, необходимых эксперту.
Учебник рассчитан на широкую аудиторию:
- Новички — найдут пошаговое введение в язык, установку окружения, основы синтаксиса и типов данных.
- Продвинутые разработчики — освят обобщенное программирование (generics), трейты, многопоточность, асинхронность и работу с памятью.
- Эксперты — углубятся в устройство языка под капотом: систему владения и заимствования, умные указатели, макросы, FFI и интеграцию с нативным кодом.
Учебник состоит из 22 глав:
- Введение в мир Rust — общий обзор языка, установка Rust (rustup), первая программа.
- Инструментарий и Качество кода — Cargo, Rustfmt, Clippy.
- Азбука программирования — переменные, типы данных, операции, условия и циклы.
- Функции и Замыкания — функции, анонимные функции, трейты
Fn,FnMut,FnOnce. - Составные типы данных — кортежи, массивы, структуры, перечисления,
Option. - Могущество сопоставления с образцом —
match,if let,while let. - Устройство памяти — стек и куча, контекст и область видимости.
- Владение и Заимствование — правила владения, ссылки, изменяемые ссылки.
- Обработка ошибок —
panic!,Result,unwrap,expect, оператор?. - Обобщенное программирование (Generics) — обобщенные типы, функции и методы.
- Трейты (Traits) — трейты как параметр и результат, ограничения, ассоциированные типы,
Debug,Display,Drop,Deref. - Идиомы и Паттерны проектирования — Builder, Typestate, Newtype.
- Время жизни ссылок (Lifetimes) — аннотации
'a, lifetimes в функциях и структурах,'static. - Модульная система — модули,
pub,use, разбиение проекта на файлы. - Коллекции и Итераторы —
Vec,String,HashMap,HashSet, срезы, итераторы. - Взаимодействие с ОС — ввод с клавиатуры, файловая система.
- Умные указатели и Утечки памяти —
Box,Rc,RefCell,Weak,unsafe. - Многопоточность (Concurrency) — потоки,
Mutex,RwLock,Arc, каналы, атомарные типы. - Асинхронность (Async/Await) —
Future, рантаймы (Tokio),PinиUnpin. - Макросы — декларативные и процедурные макросы.
- Тестирование и Документация — юнит-тесты, интеграционные тесты,
rustdoc. - FFI: Взаимодействие с нативным кодом — библиотеки C/C++, ассемблер, структуры памяти.
Подробное оглавление доступно в файле 00_toc.md.
Актуальную сборку учебника в формате PDF можно получить на странице релизов:
👉 https://github.com/dmitry-osin/rust-lang-book/releases
Этот проект распространяется под лицензией MIT.
Автор: Dmitry Osin
Подробности см. в файле LICENSE.