Async Rust в 2026 это всё ещё боль или я что-то делаю не так
Рейтинг: 66.7% · 13 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Async Rust в 2026 это всё ещё боль или я что-то делаю не так
Год пишу на Rust, синхронный код шёл нормально, местами даже приятно. Сейчас пилю сервис на axum 0.8 + tokio и ощущение что меня наказывают. Любое движение в сторону от примеров из доки и компилятор выдаёт future cannot be sent between threads safely на три экрана, причём указывает куда-то в недра tower. Вчера два часа воевал с higher-ranked lifetime error из-за замыкания в middleware.
Конкретный кейс: держал MutexGuard через await (да, знаю, нельзя, но ошибка об этом не говорит прямым текстом, она говорит про Send и тип на 40 строк). Rust 1.96, всё свежее.
Вопрос к тем кто в async Rust давно: оно реально становится нормально или вы просто привыкли к боли и называете это опытом?
Конкретный кейс: держал MutexGuard через await (да, знаю, нельзя, но ошибка об этом не говорит прямым текстом, она говорит про Send и тип на 40 строк). Rust 1.96, всё свежее.
Вопрос к тем кто в async Rust давно: оно реально становится нормально или вы просто привыкли к боли и называете это опытом?
✔ Лучший ответ сформирован автоматически — suches
Становится нормально, но не само по себе, а когда в голове щёлкают три правила. Первое: tokio::spawn хочет Send + 'static, отсюда 90 процентов твоих ошибок, всё что уезжает в спавн должно быть Arc или owned. Второе: std::sync::MutexGuard через await не живёт, бери tokio::sync::Mutex или закрывай гард в отдельном скоупе до await. Третье: если многопоточность не нужна (а на 3-5k rps она часто не ну…
Re: Async Rust в 2026 это всё ещё боль или я что-то делаю не так
✔ Лучший ответ — сформирован автоматически
Становится нормально, но не само по себе, а когда в голове щёлкают три правила. Первое: tokio::spawn хочет Send + 'static, отсюда 90 процентов твоих ошибок, всё что уезжает в спавн должно быть Arc или owned. Второе: std::sync::MutexGuard через await не живёт, бери tokio::sync::Mutex или закрывай гард в отдельном скоупе до await. Третье: если многопоточность не нужна (а на 3-5k rps она часто не нужна), бери runtime current_thread + LocalSet и половина требований Send испаряется.
Ошибки да, читаются плохо. Через полгода начинаешь видеть в этой простыне одну нужную строчку, остальное скипаешь глазами.
Ошибки да, читаются плохо. Через полгода начинаешь видеть в этой простыне одну нужную строчку, остальное скипаешь глазами.
- asynclover
- Сообщения: 70
- Зарегистрирован: 13 май 2026, 04:35
Re: Async Rust в 2026 это всё ещё боль или я что-то делаю не так
@asynclover, я после трёх лет async Rust ушёл на Go и сплю спокойно. горутина, канал, всё. да, пару раз в год ловлю data race в рантайме который раст бы не пропустил, считаю это честной ценой за нервы
Re: Async Rust в 2026 это всё ещё боль или я что-то делаю не так
higher-ranked lifetime error в комбинации с async замыканиями это местами вообще баг компилятора, в issue-трекере таких репортов пачка, часть чинят годами. Так что не всегда дело в тебе. И вообще, тема без кода это гадание, кинул бы сигнатуру хендлера хоть.
Re: Async Rust в 2026 это всё ещё боль или я что-то делаю не так
Из того что реально бесит до сих пор: async fn in traits стабилизировали ещё в 1.75, а dyn-совместимости нет до сих пор, поэтому в половине библиотек так и висит макрос async_trait с лишней аллокацией на каждый вызов. Вот это боль объективная, а не привычка.
Re: Async Rust в 2026 это всё ещё боль или я что-то делаю не так
@go4, Справедливости ради прогресс есть: async closures завезли в 1.85, ошибки про Send стали короче чем были года три назад, в nightly доводят return type notation как раз под проблему ТС с dyn. Медленно, но едет. Терпи, к 2027 может будет совсем хорошо, хах
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
-
- Raspberry Pi 5 или мини-ПК для домашнего сервера в 2026? Уже сомневаюсь
10 ответов · 2908 просмотров
-
-
- С чего реально начать в пентесте в 2026? TryHackMe, HTB или сразу сертификаты?
12 ответов · 1917 просмотров
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей