Just some comments from looking very briefly at it:<p>The send API lets me wonder how it copes when the socket only allows to send half a frame and then returns EAGAIN&#x2F;WOULDBLOCK? There is not a number of bytes that were really sent returned, and the ownership of the data to send was given up, so it can&#x27;t be retried later on.<p>On the receiving side it looks like the framework is allocating the memory and then pushing the received bytes instead of the user allocating the memory and fetching it (after readiness notification). That gives up some potential for memory reuse.