The State of Async Rust: Runtimes
Really, the problem isn't tokio. The problem is this:> An inconvenient truth about async Rust is that libraries still need to be written against individual runtimes.That's really the heart of it. If it was really just a runtime, it wouldn't matter what implementation you plugged in....but it's not true for the rust runtime; I mean, it's understandable, how can you have one runtime that is multi-threaded and one runtime that is not, and expect to be able to seamlessly interchange them?I understand it's hard and lot of work went into this, but let's face this. This article is right:Practically speaking, tokio has become 'the' rust async runtime; but it's an opinionated runtime, that has a life cycle and direction outside of the core rust team.That wasn't where we intended to end up, and it's not a good place for things to be. I, at least, agree: avoid async. Avoid teaching rust using async. When you need to use it, partition off the async components as best you can. I We should have an official runtime, officially managed, and guided by the same thoughts that guide the rest of the language.What we have now is a circus. After 4 years of async being in stable.