Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http/3 demo: Find a suitable library #28

Closed
Tracked by #1
arapov opened this issue Jun 7, 2023 · 5 comments
Closed
Tracked by #1

http/3 demo: Find a suitable library #28

arapov opened this issue Jun 7, 2023 · 5 comments
Assignees

Comments

@arapov
Copy link
Member

arapov commented Jun 7, 2023

No description provided.

@arapov arapov mentioned this issue Jun 9, 2023
@paulidale
Copy link

Curl is looking good: https://github.com/curl/curl

@t8m
Copy link
Member

t8m commented Jun 15, 2023

I was looking for curiosity at curl and it seems that it does not have its own http3 library. Instead it uses one of MSQUIC, nghttp3+ngtcp2 or quiche. I was afraid this basically makes it unusable for our purposes.

However then I was looking at how curl uses nghttp3+ngtcp2 and realized that these aren't tightly coupled so it should be quite easily possible to replace ngtcp2 calls in curl with calls to libssl.

@paulidale
Copy link

It looked like it was building the HTTP requests itself and relying on one of those three for the QUIC side of things but I needed to dig further.

@paulidale
Copy link

Replacing ngtcp2 and using curl + nghttp3 looks like it might be workable. It will be a reasonable effort -- there are quite a few callbacks and direct calls to support and not all appear to be quite the way we're doing things:

  • multi-steam is required (it opens 3 uni directional streams)
  • there will have to be some quictls aware code removed/replaced in Curl, none in nghttp3

nghttp3 appears to be very clean having no direct calls to ngtcp2.

@paulidale
Copy link

This assessment should still be considered somewhat rudimentary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

3 participants