Cross-platform socket address libraries
As mentioned in the previous post, we selected MsQuic after a long evaluation of QUIC libraries. One of the reasons for selecting it is the strong focus on cross-platform support. As one of the contributors to the project mentioned:
I want (MsQuic) to work everywhere. And if it wasn’t for openssl not using cmake, generally it wouldn’t even require (effort) to work on other platforms.
In order to support this effort, we have released two new libraries:
- libsa is a highly portable C11 socket address library that provides unified cross-platform access to native socket addresses, without having to worry about the underlying byte order or struct size. This is useful when constructing or evaluating socket addresses with MsQuic, which always uses native addresses.
- sockaddr.Net is a .Net 6 wrapper around libsa that we use in MsQuic.Net.
We intend to create a variety of language wrappers around libsa in the future but if you create one for your specific language, please create a doc PR to link it from libsa.
Releasing these projects, combined with the recent release of MsQuic.Net v2.0.0 allows us to move our focus up the stack a little bit. We will now begin the work to use MsQuic.Net in BigBuffers, the big data RPC technology we are building to move around massive geometries in xSpace.