chisel
chisel copied to clipboard
Add Support for HTTP/3 and WebTransport
As the title says. Still a work in progress, currently running into some weird QUIC/HTTP3 quirks which I'm having issues debugging. Besides that.. should almost be done.
Semi related to #375
Thank you :) definitely will consider this - on mobile haven’t looked at all the code yet though few Qs though
- how does the performance compare to the web socket transport? 1. Throughout? 2. With / without high packet loss? (I expect quic to perform better with a bad connection)
- I’m wondering if it should listen on the given port on both tcp (websockets) and Udp (quic) by default - ignore Udp listen failures. And then a flag to choose either/both explicitly - where failures are not ignored.
- I can it handle it on quic without the request path check? Makes it more transparent, and more friendly with the backend fallback flag
Thanks! As for your questions:
- I haven't run benchmarks yet, but I expect QUIC to perform better on flakier connections or where network congestion may be high.
- Hmm, currently it will automatically listen on UDP (QUIC) if a TLS certificate is set, as QUIC requires that. I could definitely add a flag to set the option explicitly though.
- I assume you're talking about the
/wt
handler? Hm, I could probably detect if it's a WebTransport connection by checking the headers. I could also check if the request came over UDP.