| ▲ | jitl 3 days ago | ||||||||||||||||||||||
libuv has provided an async interface for io using a worker thread pool for a decade, no dependency on io_uring required. I guess the threadpool they mention that aiofiles uses is written in python, so it gives concurrency but retains the GIL, so no parallelism. Node's libuv async stuff moves all the work off the main thread into c/c++ land until results are ready, only when dealing with the completed data read event does it re-enter the NodeJS "GIL" JavaScript thread. | |||||||||||||||||||||||
| ▲ | hinkley 3 days ago | parent [-] | ||||||||||||||||||||||
Libuv has had io_uring integration for almost 18 months if you’re not on an old kernel or old hardware. They claim about an 8x improvement in speed. | |||||||||||||||||||||||
| |||||||||||||||||||||||