mitchellh / libxev

libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macOS (kqueue), and Wasm + WASI. Available as both a Zig and C API.
MIT License
2.07k stars 74 forks source link

Pre-allocating buffers and registering them to io_uring #58

Open penberg opened 1 year ago

penberg commented 1 year ago

For high performance I/O, it would be great if there was an API to pre-allocate buffers and register them to io_uring as described in https://gavinray97.github.io/blog/io-uring-fixed-bufferpool-zig. Of course, we need to support the same thing for other backends that don't support registering buffers, although pre-allocation anyway helps.