Can we change that?
I recently implemented a low latency server and I had to ditch the kernel cause it adds >100us of overhead to each packet.
I’ve a hard time imaging std.Io is that slow compared to Linux. But in any case the API doesn’t lend itself to wrap a Dpdk like API.
Basically the DPDK API is to preallocate buffers mapped by the NIC. Then you ask the IO to give you buffer to write packets, then you can flush several packets at once. To receive packets, the IO interface give you the packets in its own buffers, so you need to explicitly release them, or reuse them for sending.
Each buffer is like an ArrayList where headers are typically stored between the data.