Swift implementation of the QUIC protocol

Pitch

Make swift-quic an official and recommended SSWG project.

Motivation

QUIC is now an official IETF standard and supported in all major browsers, with implementations in several major languages, Swift being a notable exception.

We believe that including swif-quic among officially-recognized SSWG projects will help nurture and mature the project, ensuring standardization, quality, and longevity. It may also increase visibility of ideas, experiments, or other early work that can add value to the SSWG mission.

Another goal of such a pure Swift implementation of QUIC is to give a foundation for a future HTTP/3 support for Swift projects using SwiftNIO.

Project Composition

The project is currently very incipient, our goal with this pitch is to create a focal point to concentrate efforts and avoid possible duplicate work by isolated teams. We affirm our openness to any contribution from anyone interested in taking part in our project.

4 Likes

Hi Kenneth,
I see you did already chime in in the NIO thread: How about http3? · Issue #1730 · apple/swift-nio · GitHub also mentioning issues with distribution wrt. quiche.

From a SSWG perspective I think it's a bit early... The pitched repository seems more like a rough idea at this point rather than a fully fledged project... We of course do want to encourage such endeavours but I'm a bit worried about endorsing just an idea..

Pure process wise though, the highest this could target to be included as would be sandbox level but there are a number of minimal requirements the project would have to meet: sswg/incubation.md at master · swift-server/sswg · GitHub

The primary objective of the SSWG endorsement isn't to "pick a winner" or pick "the" implementation, but to help adopters be confident that a project fulfil certain maturity requirements. In this case, I'm not sure the project at this point in time really fulfils them even for Sandbox level.

In other words, rather than a pitch for endorsement, this might want to turn into a call to arms so it may become a real and complete implementation? If it is on the track to becoming one, we could certainly endorse in Sandbox or other levels, but right now I think it's missing co-authors, CI, and some clear vision about adoption and usage.

Sorry for the pushback process wise, but I very much endorse the effort overall though! It would be very nice to get some people together working towards QUIC for NIO, and I know that the NIO team itself sadly currently is not planning to do so at the moment at least. (As said in the linked github thread).

5 Likes