3 ms·
In very loose terms: Rust's async/await syntax defines an interface to async programming, not an implementation. Rust leaves the implementation, and thereby ch
by lmkg 6y ago
In very loose terms: Rust's async/await syntax defines an interface to async programming, not an implementation.
Rust leaves the implementation, and thereby choice of concurrency strategy, to libraries. Tokio is such a library. There's at least one other popular one of note.
- ibraheemdev 6y ago> There's at least one other popular one of note. The other popular runtimes are async-std [0] and smol [1]. [0]: https://github.com/async-rs/async-std https://github.com/async-rs/async-std [1]: https://github.com/smol-rs/smol https://github.com/smol-rs/smol
- n42 6y agoif I understand correctly, smol was created by the async-std folks, and async-std now uses it as its runtime https://github.com/async-rs/async-std/pull/757 https://github.com/async-rs/async-std/pull/757
- indepnd 6y agoFrom what I've read, smol was created by its author and later on adopted by async-std. And, its author was in Tokio team, and later left and was in async-std team before he left and created smol. So smol was based on quite deep knowledge and experience in async.