However, there are some important features that WinSock just doesn’t expose. […]
Rust’s current async ecosystem is built atop a particularly cursed concept. It’s an unstable, undocumented Windows feature. It’s the lynchpin of not only the Rust ecosystem, but the JavaScript one as well. It’s controversial. It’s efficient. […] Without it, it’s unlikely that the async ecosystem would exist in its current form. It’s called \Device\Afd, and I’m tired of no one talking about it.
And all of this due to the mistaken design decision to stick with the obsolete readiness-based model instead of going with the superior completion-based model.
(You can build a readiness-based API on top of a completion-based API, but not the other way around.)