Реализация Reactive Extensions для Java VM, позволяющая компоновать асинхронные программы и программы на основе событий с помощью последовательностей Observable.
tokio-rs/tokio
Асинхронная среда выполнения для Rust с планировщиком задач, неблокирующим вводом-выводом, сетевыми возможностями и таймерами для надёжных сетевых приложений.
- Звёзды
- 33,502
- Форки
- 5,781
- Открытые issues
- 440
- Последний коммит
- 11 часов назад
Что это?
Tokio — событийно-ориентированная платформа с неблокирующим вводом-выводом для разработки асинхронных приложений на Rust. В неё входят многопоточный планировщик задач с балансировкой нагрузки за счёт передачи задач между потоками, реактор на основе системной очереди событий (epoll, kqueue, IOCP и аналоги), а также асинхронные TCP- и UDP-сокеты.
Tokio предназначен для разработчиков сетевых сервисов и других программ с интенсивным вводом-выводом, которым нужно обрабатывать множество одновременных подключений без выделения отдельного потока для каждого. Приложения подключают нужные им feature flags, а затем используют async/await, а также spawn, таймеры и примитивы синхронизации среды выполнения.
Проект входит в более широкую экосистему, в которую также входят веб-фреймворк axum, HTTP-реализация hyper, gRPC-библиотека tonic, абстракции middleware tower и фреймворк диагностики tracing.
Ключевые возможности
- 01Многопоточный планировщик задач с передачей задач между потоками
- 02Неблокирующие TCP- и UDP-сокеты
- 03Реактор на основе epoll, kqueue и IOCP
- 04Таймеры и примитивы асинхронной синхронизации
- 05Feature flags позволяют подключать только нужные компоненты
Сценарии использования
- Создание высоконагруженных TCP- или UDP-серверов на Rust
- Разработка асинхронных клиентов, которые одновременно обращаются к множеству сервисов
- Выполнение фоновых задач с интенсивным вводом-выводом, таймерами и отменой
Быстрый старт
- 1
Добавьте Tokio в Cargo.toml со всем набором функций
tokio = { version = "1.54.1", features = ["full"] } - 2
Напишите пример TCP-эхо-сервера в main.rs и запустите проект с помощью cargo
Что важно знать
- Требуется toolchain Rust; минимальная поддерживаемая версия Rust — 1.85.
- Tokio — это библиотека среды выполнения, поэтому она полезна только в проекте Rust, который вы собираете самостоятельно.
Темы
Частые вопросы
- Что такое tokio?
- Асинхронная среда выполнения для Rust с планировщиком задач, неблокирующим вводом-выводом, сетевыми возможностями и таймерами для надёжных сетевых приложений. Tokio — событийно-ориентированная платформа с неблокирующим вводом-выводом для разработки асинхронных приложений на Rust. В неё входят многопоточный планировщик задач с балансировкой нагрузки за счёт передачи задач между потоками, реактор на основе системной очереди событий (epoll, kqueue, IOCP и аналоги), а также асинхронные TCP- и UDP-сокеты.
- tokio можно использовать бесплатно? Какая у него лицензия?
- tokio распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- tokio всё ещё поддерживается?
- Активно поддерживается. Последний коммит в tokio — 24 окт. 2026 г..
- Для чего можно использовать tokio?
- Создание высоконагруженных TCP- или UDP-серверов на Rust Разработка асинхронных клиентов, которые одновременно обращаются к множеству сервисов Выполнение фоновых задач с интенсивным вводом-выводом, таймерами и отменой
- Как установить tokio?
- Добавьте Tokio в Cargo.toml со всем набором функций: tokio = { version = "1.54.1", features = ["full"] } Напишите пример TCP-эхо-сервера в main.rs и запустите проект с помощью cargo
- Где скачать tokio?
- Исходный код и инструкции по установке — на GitHub: https://github.com/tokio-rs/tokio
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Небольшое дополнение к библиотеке Python requests для асинхронной отправки HTTP-запросов с помощью concurrent.futures.
Асинхронный событийный Java-фреймворк для создания удобных в сопровождении и высокопроизводительных серверов и клиентов сетевых протоколов.
Библиотека C для кроссплатформенного асинхронного ввода-вывода — основа event loop в Node.js.
C++11-фреймворк для параллельных вычислений и асинхронной работы с сетью, используемый в серверных сервисах Sogou для построения DAG-сценариев задач.
Минималистичная CLI-утилита на Rust, которая открывает локальный TCP-порт на удалённом сервере, делая сервисы localhost доступными из интернета.