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.

5 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).

6 Likes

Hello, ktoso!

First of all, thank for your timely, kind response and please forgive my late reply. I've had been rather busy for some time tending to more urgent matters.

I can't help but agree with you. Even as I was writing down the words, I had the impression that I was jumping the gun. I must say that, despite being a somewhat seasoned programmer, I'm sure a newbie when it comes to open source communities and projects. I think the sentence "Pitches are used to collect feedback from the community and help define the exact scope of a project prior to writing code." got me biased towards rushing things out and ask for "including swif-quic among officially-recognized SSWG projects." before having something concrete to present.

I'd like to make it clear that I'm in no way acting as if it's all fun and games. Sure we programers get amusement in solving problems and overcoming challenges; someone implementing a promising new network protocol in a language which, given it's thoroughly crafted, joyful elegant design, may be considered pleasant to work with, faces the risk of getting lost among toy code pieces with maybe some academic interest but little practical usefulness. I want the opposite of this, the working group may rest assured that I'm a serious professional programer and my goal is to provide real benefit and value to users, society and, pardon my hyperbole, the whole planet after all.

That's it! As you see, I consider this project an unprecedented opportunity to realize something great and I'm unable to conceal my enthusiasm. But working alone I'm not going to accomplish anything relevant, this much I know. So my main drive when I commented on SwiftNIO's GitHub thread and, specially, when I pitched to this forum, was to make myself visible in hope of getting in touch with others sharing this passion (and having some skills of course) willing to team up with me.

Never mind, I totally understand the need to preserve SSWG's projects' level of quality and trustfulness.

Thanks! I very much appreciate your words, they certainly encourage me, and these days I'll have some time, to persist in the project.

And also, I thank you for these clear mentions. It would be fair to say that I'm a developer and I suck at project management. By referring points that I overlooked, you give me guidance in what I should focus for the moment. I wish I can make the project reach a critical mass capable of attracting others that help making it and, of course, adopters to put it work.

5 Likes