1. 1. Начало работы
    1. 1.1. Для чего нужна асинхронность?
    2. 1.2. Состояние асинхронности в Rust
    3. 1.3. Пример async/.await
  2. 2. Под капотом: выполнение Future и задач
    1. 2.1. Типаж Future
    2. 2.2. Вызовы задачи при помощи Waker
    3. 2.3. Применение: создание исполнителя
    4. 2.4. Исполнители и системный ввод/вывод
  3. 3. async/await
  4. 4. Закрепление
  5. 5. Потоки
    1. 5.1. Итерирование и параллелизм
  6. 6. Одновременное выполнение нескольких Future
    1. 6.1. join!
    2. 6.2. select!
    3. 6.3. TODO: Порождение
    4. 6.4. TODO: Отмена и таймауты
    5. 6.5. TODO: FuturesUnordered
  7. 7. Обходные пути, которые мы понимаем и любим
    1. 7.1. ? в async блоках
    2. 7.2. Send Approximation
    3. 7.3. Рекурсия
    4. 7.4. async в типажах
  8. 8. Асинхронная экосистема
  9. 9. Финальный проект: HTTP сервер
    1. 9.1. Запуск асинхронного кода
    2. 9.2. Конкурентная обработка подключений
    3. 9.3. Тестирование сервера
  10. 10. TODO: Ввод/вывод
    1. 10.1. TODO: AsyncRead и AsyncWrite
  11. 11. TODO: Паттерны асинхронного дизайна: решения и предложения
    1. 11.1. TODO: Моделирование серверов и паттерн Request/Response
    2. 11.2. TODO: Управление общим состоянием
  12. 12. Приложение: Переводы книги

Asynchronous Programming in Rust