Релиз платформы разработки асинхронных приложений Tokio 1.13.0

Выпущена версия 1.13.0 платформы Tokio, предназначенной для создания высокопроизводительных приложений на основе событийно-ориентированной архитектуры (Event-driven), поддерживающей многопоточность и обработку сетевых запросов в асинхронном режиме. Проект написан на языке Rust и распространяются под лицензией MIT. В новой версии отмечается расширение документации, ряд исправлений в сетевой подсистеме и системе синхронизации.

Tokio включает в себя следующие компоненты:

  • Многопоточный планировщик ввода/вывода, работа которого сводится к предоставлению ресурсов только тем потокам (в контексте параллельного исполнения), которые отвечают конкретным условиям, что позволяет избегать состояния гонки, часто встречающиеся в программах, написанных на языках без безопасного управления памятью и ресурсами;
  • Бэкенд для обеспечения совместимости с предоставляемыми в различных операционных системах механизмами мультиплексирования соединений, такими, как epoll, kqueue и IOCP;
  • Типы и привязки c реализацией асинхронных TCP- и UDP-сокетов.
  • Инструменты для выполнения задач в асинхронном режиме, включая примитивы синхронизации, каналы и таймауты.
  • API для выполнения асинхронного ввода/вывода, охватывающий TCP/UDP-сокеты, файловые операции, средства управления сигналами и процессами.

Разработчики отмечают такие особенности своего продукта, как высокую производительность, сравнимую со скоростью работы на “голом железе”, отличную масштабируемость и надёжность, обеспечиваемую системой типов и моделью параллелизма языка Rust.

Репозиторий насчитывает более 500 участников. В качестве зависимости Tokio используют такие продукты, как:

  • hyper: быстрая и безопасная реализация HTTP/1 и HTTP/2 для Rust;
  • warp: легковесный фреймворк для веб-сервера, ориентированный на высокую скорость работы;
  • tracing: фреймворк для трассировки на уровне приложений и диагностики с учетом асинхронности;
  • rdbc: библиотека для подключения баз данных MySQL, Postgres и SQLite к продуктам на языке программирования Rust;
  • bytes: Утилиты для работы с байтами, включая эффективные байтовые буферы.
Release. Ссылка here.