From Spawn to FuturesUnordered: How Community Feedback Reshaped Our Async Design
The Setup
A few weeks ago, I published a proof-of-concept on Reddit: "Abstraction as Complement to Standardization." The core idea: avoid vendor lock-in not with more layers, but by building a thin trait abstraction directly on top of the Future standard that Tokio, Embassy and WASM all implement.
The post resonated β it hit #2 on r/rust. But the real value came afterward, in the comments.
The community didn't just validate the approach. They questioned a specific design decision and offered something cleaner. And now we're rethinking the whole thing.
The Original Design: Four Traits
The PoC proposed four traits composed into a generic Runtime :
RuntimeAdapter β platform identity
Spawn β task creation (the controversial one)
TimeOps β clocks and sleep
Logger β structured output
The setup was clean: portable code receives RuntimeContext<R> and uses typed accessors. Everything monomorphizes away at compile time.β¦