Выпущена версия 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: Утилиты для работы с байтами, включая эффективные байтовые буферы.