That said, Rust does encourage message passing by default, but also gives you the ability to safely do shared-memory concurrency if you need.
That said, Rust does encourage message passing by default, but also gives you the ability to safely do shared-memory concurrency if you need.
OTOH, M:N and 1:N both require you to do more to handle actors in the runtime, which potentially adds overhead to everything, M:N may not always be a win compared to 1:1.
> which rust decided not to do recently.
It's more subtle than this. Rust's I/O libraries are being re-done to remove the M:N stuff, yes, but Rust is low enough that I/O is just a library; anyone can implement alternate I/O stuff, it's not privileged other than coming with Rust. See mio as an example of an in-progress alternative.
(We also used to say "Erlang-style" in our marketing, but eventually removed it)