An open API service indexing awesome lists of open source software.

https://github.com/dmitry-osin/rust-lang-book

Книга по языку Rust на русском от основ до эксперта
https://github.com/dmitry-osin/rust-lang-book

beginner dyn expert lifetime rust-lang rwlock trait

Last synced: 12 days ago
JSON representation

Книга по языку Rust на русском от основ до эксперта

Awesome Lists containing this project

README

          

# Учебник по языку Rust

Добро пожаловать в учебник по языку программирования Rust! Этот репозиторий содержит полный курс, охватывающий все темы — от базового синтаксиса до продвинутых концепций, необходимых эксперту.

## Описание

Учебник рассчитан на широкую аудиторию:
* **Новички** — найдут пошаговое введение в язык, установку окружения, основы синтаксиса и типов данных.
* **Продвинутые разработчики** — освят обобщенное программирование (generics), трейты, многопоточность, асинхронность и работу с памятью.
* **Эксперты** — углубятся в устройство языка под капотом: систему владения и заимствования, умные указатели, макросы, FFI и интеграцию с нативным кодом.

## Содержание

Учебник состоит из 22 глав:

1. **Введение в мир Rust** — общий обзор языка, установка Rust (rustup), первая программа.
2. **Инструментарий и Качество кода** — Cargo, Rustfmt, Clippy.
3. **Азбука программирования** — переменные, типы данных, операции, условия и циклы.
4. **Функции и Замыкания** — функции, анонимные функции, трейты `Fn`, `FnMut`, `FnOnce`.
5. **Составные типы данных** — кортежи, массивы, структуры, перечисления, `Option`.
6. **Могущество сопоставления с образцом** — `match`, `if let`, `while let`.
7. **Устройство памяти** — стек и куча, контекст и область видимости.
8. **Владение и Заимствование** — правила владения, ссылки, изменяемые ссылки.
9. **Обработка ошибок** — `panic!`, `Result`, `unwrap`, `expect`, оператор `?`.
10. **Обобщенное программирование (Generics)** — обобщенные типы, функции и методы.
11. **Трейты (Traits)** — трейты как параметр и результат, ограничения, ассоциированные типы, `Debug`, `Display`, `Drop`, `Deref`.
12. **Идиомы и Паттерны проектирования** — Builder, Typestate, Newtype.
13. **Время жизни ссылок (Lifetimes)** — аннотации `'a`, lifetimes в функциях и структурах, `'static`.
14. **Модульная система** — модули, `pub`, `use`, разбиение проекта на файлы.
15. **Коллекции и Итераторы** — `Vec`, `String`, `HashMap`, `HashSet`, срезы, итераторы.
16. **Взаимодействие с ОС** — ввод с клавиатуры, файловая система.
17. **Умные указатели и Утечки памяти** — `Box`, `Rc`, `RefCell`, `Weak`, `unsafe`.
18. **Многопоточность (Concurrency)** — потоки, `Mutex`, `RwLock`, `Arc`, каналы, атомарные типы.
19. **Асинхронность (Async/Await)** — `Future`, рантаймы (Tokio), `Pin` и `Unpin`.
20. **Макросы** — декларативные и процедурные макросы.
21. **Тестирование и Документация** — юнит-тесты, интеграционные тесты, `rustdoc`.
22. **FFI: Взаимодействие с нативным кодом** — библиотеки C/C++, ассемблер, структуры памяти.

Подробное оглавление доступно в файле [`00_toc.md`](00_toc.md).

## Актуальная сборка

Актуальную сборку учебника в формате PDF можно получить на странице релизов:

👉 [https://github.com/dmitry-osin/rust-lang-book/releases](https://github.com/dmitry-osin/rust-lang-book/releases)

## Лицензия

Этот проект распространяется под лицензией **MIT**.

Автор: **Dmitry Osin**

Подробности см. в файле [LICENSE](LICENSE).