<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: reallyreason</title><link>https://news.ycombinator.com/user?id=reallyreason</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 10:58:22 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=reallyreason" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by reallyreason in "Async Rust never left the MVP state"]]></title><description><![CDATA[
<p>It could also be argued that putting a specific executor model into the standard library will make the problem <i>worse</i> because it will give library crates license to use it without considering alternatives <i>because</i> it is standard. At least today taking a dependency on a specific runtime is a well-known boondoggle .</p>
]]></description><pubDate>Tue, 05 May 2026 15:16:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48023704</link><dc:creator>reallyreason</dc:creator><comments>https://news.ycombinator.com/item?id=48023704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48023704</guid></item><item><title><![CDATA[New comment by reallyreason in "Async Rust never left the MVP state"]]></title><description><![CDATA[
<p>It really depends on the abstraction model of the library. If the library needs to actually read/write a file, it either needs to depend on a runtime or provide some horrific abstraction over the process it will use to do that. This doesn't apply to sync IO libraries which can just use the Standard Library.<p>Web/server frameworks have to bind to a runtime because they have to make decisions about how to connect to a socket. Hyper is sufficiently abstract that it doesn't require any runtime, but using hyper directly provides no framework-like benefits and requires that you make those decisions and provide a compatible socket-like implementation for sending requests.</p>
]]></description><pubDate>Tue, 05 May 2026 15:13:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48023654</link><dc:creator>reallyreason</dc:creator><comments>https://news.ycombinator.com/item?id=48023654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48023654</guid></item><item><title><![CDATA[New comment by reallyreason in "Async Rust never left the MVP state"]]></title><description><![CDATA[
<p>I think that's the problem in essence, yes. Different executors built on top of different primitives and having different executions strategies will have mutually incompatible constraints.<p>To spawn a future on tokio, it has to implement `Send`, because tokio is a work-stealing executor. That isn't the case for monoio or other non-work-stealing async executors, where tasks are pinned to the thread they are spawned on and so do not require `Send` or `Sync`, so you can use Rc/RefCell.<p>Moreover, the way that async executors schedule execution can be _different_. I have a small executor I made that is based on the runtime model of the JS event loop. It's single-threaded async, with explicit creation of new worker threads. That isn't a model that can "slot in" to a suite of traits that adequately represents the abstraction provided by tokio, because the abstraction of my executor and the way it schedules tasks are fundamentally different.<p>Any reasonably-usable abstraction for the concept of an async runtime would impose too many constraints on the implementation in the name of ensuring runtime-generic code can execute on any standard runtime. A Future, for better or worse, is a sufficiently minimal abstraction of async executability without assuming anything about how the polling/waking behavior is implemented.</p>
]]></description><pubDate>Tue, 05 May 2026 15:03:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48023503</link><dc:creator>reallyreason</dc:creator><comments>https://news.ycombinator.com/item?id=48023503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48023503</guid></item></channel></rss>