curl-library
Re: HTTP/3
Date: Sun, 9 Dec 2018 19:07:27 +0100 (CET)
On Sun, 9 Dec 2018, Vipin P R wrote:
> I want to start contributing to HTTP/3 development. This is my first open 
> source project I am undertaking. Can u guide me on this, where to start.
Absolutely.
First: welcome and thanks for wanting to help out! This is still early days 
with only the first stumbling attempts in place.
Then: clone the source tree and check out the development branch:
  https://github.com/curl/curl/tree/ngtcp2
The 'docs/HTTP3.md' file in there should document the status of the branch and 
how to build it and test it. PR #3314 is also a good place if you want to 
comment/discuss some h3 related details.
I've made the code build with both ngtcp2's master branch as well as the 
draft-15 branch. It seems the draft-15 one is the more bleeding edge code.
Status:
I've worked the last week or so to get code added to make a first QUIC 
connection when --http3-direct is used. See lib/quic.c and lib/quic-crypto.c. 
I've based my code heavily on the ngtcp2 example code client.cc since there 
aren't any actual documentation for ngtcp2 yet.
The branch builds and tests fine without ngtcp2, which is what I'm trying hard 
to make sure. This way, we can merge this work early and only have it affect 
the experimental builds that actually enable QUIC.
Next steps:
Start checking that we're using ngtcp2 correctly and add logic to libcurl to 
make sure that QUIC connection is made to work (primarily against ngtcp2's own 
test server).
This is pretty tricky work since ngtcp2's API is very QUIC/TLS-centric and 
will probably require some insights in the protocols to fully grasp, and of 
course comparing with what the client.cc code does in the comparable scenario. 
I might also ask Tatsuhiro (lead dev of ngtcp2) to give it a look and perhaps 
help us out a bit once that's deemed suitable.
Since nghq still isn't doing HTTP/3 (and neither is ngtcp2), there's also the 
question how we should proceed and work on HTTP/3 support once we get the QUIC 
connection worked out. There's clearly a few missing pieces here that we need 
to join in and help make happen, but I'm not currently sure what the best 
steps are to do this.
If you have any questions or feedback, take them here or in the PR!
-- / daniel.haxx.se ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.htmlReceived on 2018-12-09