Pull to refresh
17
0
Олег Уткин @oleggator

Пользователь

Send message

Теоретически можно написать executor, который будет работать поверх тарантульного event loop и файберов. Тогда будет возможно использовать async/await поверх тарантульного рантайма. Но это все равно будет несовместимо с большинством асинхронных библиотек, так как они, как правило, привязаны к Tokio или async-std. Возможно, в будущем, когда интерфейсы к reactor добавят в стандартную библиотеку, это будет иметь больше смысла.

Другой подход - запустить Tokio или async-std в отдельным потоке, а с потоком тарантула общаться через передачу сообщений. Попытка сделать библиотеку для удобного исполнения кода в потоке тарантула c интеграцией с Tokio: https://github.com/oleggator/xtm_rust

Целью данного примера было показать схожесть подходов работы с асинхронными операциями. При реальном использовании действительно необходима обработка ошибок.

Да, но они не приспособлены для использования с асинхронным рантаймом. Необходимо самостоятельно обрабатывать ситуацию переполнения. Либо блокировать поток при использовании блокирующих методов (send у std::sync::mpsc::SyncSender).

Сейчас в команде 2 человека, которые научились писать на Rust. Пока что проектов, в которых целесообразно использовать Rust, не так много.

Information

Rating
Does not participate
Works in
Registered
Activity