QUIC Network framework interoperability

We would like to understand/double check if it is possible to use QUIC in Swift via Network framework as the client along with some other QUIC solution on the server (ex. s2n-quic, quiche, msquic, etc..) which won't be a macOS server.

If that interoperability is indeed possible, the NWConnectionGroup won't be an approach we could use IMO, since probably we will need to develop that from scratch on both sides.

Thanks in advance.

Answered by DTS Engineer in 796554022

We would like to understand/double check if it is possible to use QUIC in Swift via Network framework as the client along with some other QUIC solution on the server (ex. s2n-quic, quiche, msquic, etc..) which won't be a macOS server.

Yes, that's entirely possible. QUIC is designed as a general purpose transport layer protocol (it was designed to replace TCP). Inherent to that kind of architecture is that the neither side of the connection should need to have any special knowledge about the other sides implementation. To be honest, QUIC adoption is already broad enough that I think most QUIC communication is between unrelated clients/servers.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

We would like to understand/double check if it is possible to use QUIC in Swift via Network framework as the client along with some other QUIC solution on the server (ex. s2n-quic, quiche, msquic, etc..) which won't be a macOS server.

Yes, that's entirely possible. QUIC is designed as a general purpose transport layer protocol (it was designed to replace TCP). Inherent to that kind of architecture is that the neither side of the connection should need to have any special knowledge about the other sides implementation. To be honest, QUIC adoption is already broad enough that I think most QUIC communication is between unrelated clients/servers.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

That's exactly the kind of answer I was expecting.

Thank you.

What Kevin said but also:

  • HTTP/3 is based on QUIC.

  • The HTTP/3 support in URLSession uses the QUIC support within Network framework.

  • That interoperates with a lot of servers.

Now, HTTP/3 only uses a small subset of QUIC’s flexibility, but this at least gives you a starting point.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

QUIC Network framework interoperability
 
 
Q