Skip to content
This repository was archived by the owner on Apr 16, 2025. It is now read-only.

[DO NOT MERGE] quic git#51

Closed
kim wants to merge 1 commit intomasterfrom
quic
Closed

[DO NOT MERGE] quic git#51
kim wants to merge 1 commit intomasterfrom
quic

Conversation

@kim
Copy link
Copy Markdown
Contributor

@kim kim commented Feb 13, 2020

This implements a very simple git HTTP/3 server and client transport using custom TLS certificate validation rules (basically, a self-signed cert using the device key is presented). See inline commentary for pointers where we're not there yet.

One major peculiarity is registering the transport with libgit, which needs to happen only once. We will need to rework the library such that it forces the user to run some initialisation logic.

I also thought it might be overall the most straightforward to just use HTTP/3 instead of a custom protocol over plain QUIC, but I'm not sure how smart this is. Basically, my thoughts were: ALPN (application-level protocol negotiation) happens on the connection level, not streams. So, if we negotiate a custom protocol, it will be a bit tricky to "upgrade" an individual stream to HTTP/3 if so desired. Otoh, we could just use HTTP/3 and use normal request matching to dispatch different protocol concerns. This feels a bit clunky, however. Specifically, support for streaming request bodies seems a bit tricky due to having to switch between synchronous (libgit transport) and asynchronous code (quinn).

Let me know what you think.

@kim
Copy link
Copy Markdown
Contributor Author

kim commented Feb 13, 2020

Uhm yeah, the e2e test fails on CI. It works locally though, check it out.

@kim
Copy link
Copy Markdown
Contributor Author

kim commented Mar 12, 2020

Superseded by #70

@kim kim closed this Mar 12, 2020
@kim kim deleted the quic branch October 6, 2020 12:39
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant