Scipio: A Thread-per-Core Crate for Rust and Linux
I'll go against the grain here and say that async/await, wether implemented by one thread-per-core like here or by stackless coroutines is not the solution.Async/await will make complexity explode because of the colored function problem [1].The solution to expensive context switches is cheap context switches, plain and simple. User-mode lightweight threads like go's, or upcoming Java's with Loom [2] have proven that this is possible.Yes, it does mean that it can only happen in a language that controls its stack (so that you can slice it off and pop a continuation on it). I sincerely believe this is Rust's ballpark; hell they even started the project with that idea in mind.[1] https://journal.stuffwithstuff.com/2015/02/01/what-color-is-...[2] https://jdk.java.net/loom/