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

HTTP3/QUIC Support #95

Open
triplewy opened this issue Mar 2, 2024 · 6 comments
Open

HTTP3/QUIC Support #95

triplewy opened this issue Mar 2, 2024 · 6 comments
Labels
enhancement New feature or request Long Term Goal Feature that we plan to support but not likely in the near future

Comments

@triplewy
Copy link

triplewy commented Mar 2, 2024

Will Pingora integrate with Cloudflare Quiche to provide HTTP3/QUIC support? A quick look at the readme does not mention H3 or QUIC.

@SunnyChilD1
Copy link

for

@hi-glenn
Copy link

hi-glenn commented Mar 3, 2024

https://blog.cloudflare.com/pingora-open-source

Pingora provides libraries and APIs to build services on top of HTTP/1 and HTTP/2, TLS, or just TCP/UDP. As a proxy, it supports HTTP/1 and HTTP/2 end-to-end, gRPC, and websocket proxying. (HTTP/3 support is on the roadmap.) It also comes with customizable load balancing and failover strategies. For compliance and security, it supports both the commonly used OpenSSL and BoringSSL libraries, which come with FIPS compliance and post-quantum crypto.

@andrewhavck andrewhavck added the enhancement New feature or request label Mar 6, 2024
@eaufavor eaufavor added the Long Term Goal Feature that we plan to support but not likely in the near future label Jul 11, 2024
@dengyunsheng250
Copy link

on the roadmap

@NiuBlibing
Copy link

I find a quic library:https://github.com/quinn-rs/quinn. Does it make some help?

@Noah-Kennedy
Copy link
Contributor

When we implement H3 support in pingora, we will do so using https://github.com/cloudflare/quiche

@hargut
Copy link
Contributor

hargut commented Dec 18, 2024

Hi,

I had a closer look into this topic and have done some proto-typing. Currently I'm thinking about taking the proto-type to a PR state or to leave it at where it is now.

Before starting I've looked into the various options around this area and in context of pingora.

Based on the available options the proto-type ended up having:

  • a quiche/hyper-h3 integration
  • and hyper-h3 integrated with pingora-core

This approach would allow to use quiche/quic in a BoringSSL/OpenSSL context and quinn/quic in a Rustls context while sharing the h1/h2/h3 integration. Having the disadvantage that the quiche/h3 layer is not used and having the advantage that the integration with current hyper based h1/h2 layer is quite straight forward.

The current status only involves the acceptor. As of now I've not looked into the connector. The quiche-h3 side is functional and pingora can be run with quiche-h3 & quinn-h3 on different endpoints to have a good option for performance comparisons.

For me it would be very helpful to understand if there is interest in the described approach before deciding on the way forward and/or adjusting the path.

Kind regards,
Harald

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Long Term Goal Feature that we plan to support but not likely in the near future
Projects
None yet
Development

No branches or pull requests

9 participants