Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Добро пожаловать в Comprehensive Rust 🦀

Build workflow GitHub contributors GitHub stars

Это бесплатный курс по Rust, разработанный командой Android в Google. Курс охватывает весь спектр Rust: от базового синтаксиса до сложных тем, таких как обобщённые типы (generics) и обработка ошибок.

Актуальная версия курса доступна по адресу https://r007.github.io/EmbeddedRust-Rus/comprehensive-rust/. Если вы читаете курс в другом месте, пожалуйста, проверьте обновления там.

Курс доступен и на других языках. Выберите нужный язык в правом верхнем углу страницы или откройте страницу Переводы, где перечислены все доступные переводы.

Курс также доступен в формате EPUB.

Цель курса — научить вас языку Rust. Мы предполагаем, что вы ничего не знаете о Rust, и надеемся:

  • Дать достаточно хорошее представление о синтаксисе и семантике Rust.
  • Научить работать с существующим кодом и писать новые программы на Rust.
  • Показать распространённые идиомы языка Rust.

Первые четыре дня курса мы называем «Основы Rust» (Rust Fundamentals).

Опираясь на это, вы можете углубиться в одну или несколько специализированных тем:

  • Android: рассчитанный на полдня курс по использованию Rust для разработки на платформе Android (AOSP). Сюда входит взаимодействие с C, C++ и Java.
  • Chromium: рассчитанный на полдня курс по использованию Rust в браузерах на базе Chromium. Включает взаимодействие с C++ и подключение сторонних крейтов в Chromium.
  • Bare-metal: занятие на целый день по использованию Rust для разработки bare-metal (встраиваемых систем). Рассматриваются как микроконтроллеры, так и прикладные процессоры.
  • Конкурентность: занятие на целый день, посвящённое конкурентности в Rust. Мы рассмотрим как классическую конкурентность (вытесняющее планирование с помощью потоков и мьютексов), так и конкурентность на основе async/await (кооперативная многозадачность с помощью фьючерсов).

За рамками курса

Rust — это объёмный язык, и мы не сможем охватить его целиком за несколько дней. Темы, выходящие за рамки курса:

Предположения

Курс предполагает, что вы уже умеете программировать. Rust — статически типизированный язык, и мы иногда будем сравнивать его с C и C++, чтобы лучше объяснить или противопоставить подход Rust.

Если вы знаете, как программировать на языке с динамической типизацией, например Python или JavaScript, то и вам будет несложно следить за курсом.

Это пример заметок для преподавателя. Мы будем использовать их для добавления дополнительной информации к слайдам. Это могут быть ключевые моменты, которые преподаватель должен осветить, а также ответы на типичные вопросы, которые возникают в ходе прохождения курса.