&gt; Here is 90% of what Go gives you as a C library. No heavyweight runtime necessary<p>Rust has channels in its standard library. Admittedly, they do not have the same functionality as Go&#x27;s concurrency primitives. The two most significant omissions are probably a multi-producer&#x2F;multi-consumer channel and a more complete (and stable) `select` construct.<p>There is also my `chan` library, which replicates Go functionality with respect to channels: <a href="http:&#x2F;&#x2F;burntsushi.net&#x2F;rustdoc&#x2F;chan&#x2F;" rel="nofollow">http:&#x2F;&#x2F;burntsushi.net&#x2F;rustdoc&#x2F;chan&#x2F;</a> --- Notably, you still have to use native threads.<p>Your `libmill` example is a coroutine library with a scheduler and everything. That is definitely too much runtime for standard Rust. However, there are people working on coroutines in Rust, on which something like `libmill` could be built: <a href="https:&#x2F;&#x2F;crates.io&#x2F;search?q=coroutine" rel="nofollow">https:&#x2F;&#x2F;crates.io&#x2F;search?q=coroutine</a>