←back to thread

A Few Words About Async

(yoric.github.io)
82 points vinhnx | 5 comments | | HN request time: 0.2s | source
1. vlovich123 ◴[] No.45788014[source]
> In practice, things are a bit more complicated. In fact, I don’t know of any async/await embedding on top of io_uring in any language yet, because it doesn’t quite match this model. But generally, that’s the idea.

Glommio and monoio are async runtimes in rust on top of io_uring and Tokio has an optional io_uring backend. Does that not count? This is such a well researched article that this kind of statement makes me think I’m missing something - surprising the author would get this wrong.

replies(3): >>45788491 #>>45791963 #>>45795087 #
2. koakuma-chan ◴[] No.45788491[source]
As far as I know those libraries only implement basic things. They don't use registered buffers, registered file descriptors, etc, and don't implement advanced features like chained operations.
replies(1): >>45789280 #
3. ozgrakkurt ◴[] No.45789280[source]
They are async libraries built on io-uring though. Other mainstream async libraries also don’t go as deep as possible on epoll or other things either afaik
4. Yoric ◴[] No.45791963[source]
(author here)

I didn't mention tokio's io_uring because, as far as I understand, it is unmaintained. I vaguely recall a conversation in which someone (a contributor?) was claiming that it was not possible to implement most of the features of tokio on io_uring due to conflicting models. [source needed], obviously.

I will admit the very existence of glommio or monoio had entirely slipped my mind. I'll probably need to add a few paragraphs about thread-per-core runtimes. Thanks!

5. lukeh ◴[] No.45795087[source]
I wrote one for Swift a few years ago, not sure if anyone else is using it but I am!

https://github.com/PADL/IORingSwift