I have two C++ services that need ultra low-latency communication over the network. I’m considering using raw sockets with io_uring
but also looking at possibilities of using various messaging queues like ZeroMQ, NanoMQ, and Aeron UDP etc.
My Questions:
- How does the latency and performance of raw sockets with
io_uring
compare to ZeroMQ, NanoMQ, and Aeron UDP? - Is the added complexity of raw sockets with
io_uring
worth it compared to the simplicity of high-level libraries? - Can you provide sample code examples for implementing raw sockets with
io_uring
?
some code example so far i found is just this : https://unixism.net/loti/tutorial/webserver_liburing.html
but its http server and client, i probably dont need to have http as application protocol.
Any insights or benchmarks would be appreciated. Thanks!