Http/3 in Phoenix

Well I made the old HTTP/2 thread, so I guess it’s time I should make the HTTP/3 thread, lol. ^.^;

Cloudflare has rolled out HTTP/3 support. Things from curl to chrome itself already support HTTP/3, and firefox is adding support in an upcoming nightly. So how goes HTTP/3 support in phoenix (does the BEAM even have a QUIC library yet speaking of)? :slight_smile:

15 Likes

The most complete I’ve seen for QUIC is https://github.com/g-andrade/quack which has been archived. Since HTTP/3 moves parts for flow control to the protocol QUIC that were in the application level with HTTP/2 I have meant to look at if an http/2 library, like https://github.com/joedevivo/chatterbox, would make sense as a starting point to pull some parts out of for build quic.

Also, TLS 1.3 is required though, isn’t it? I know it is at least partially available in OTP 22 but I don’t know that all necessary components are available.

5 Likes

I’m unsure if referencing HTTP/2 would help. QUIC adds things that are a lot like SCTP style things like pipelines, and those are why some parts of HTTP/2 can be dropped, just because it already exists in QUIC, but it’s not specific to HTTP/# at all as it is just a protocol layer and QUIC is useful for non-HTTP things.

And I do know QUIC requires TLS, and I’m pretty sure TLS 1.3 is required but uncertain on that last part… Though I bet HTTP/3 requires it regardless.

1 Like

QUIC does indeed require TLS 1.3 (https://quicwg.org/base-drafts/draft-ietf-quic-http.html). And if I remember it was only experimentally added in OTP recently.

I would also be interested in QUIC in Elixir :slight_smile:

4 Likes

Oh wow, that was QUIC.

28 Likes

@josevalim you definitely spend too much time chatting with @tenderlove, it influences your puns. :smiley:

My 2 cents would be that in addition to server (as in Cowboy most likely), support for HTTP client would be a nice to have at some point. I can see this will be a big speed up in some systems I saw, that do crazy stuff like protobuf files stored & read through S3, once AWS adds support to HTTP/3 on their end.

5 Likes

:laughing:

Yeah it’s looking nice so far. I was hesitant about QUIC being a more ‘generic’ non-http standard at first but they even have things like unreliable channels in the spec now too, it looks very nice! Like becoming a modern SCTP replacement! :slight_smile:

5 Likes

Hi @josevalim and @chrismccord, with http/3 getting closer to becoming an RFC are there any plans to incorporate it into the Elixir ecosystem?

Links for reference:

2 Likes

Neither José nor Chris maintain the webserver library used by phoenix.

This depends on cowboy:

3 Likes

For others that stumble in on this at some later date.

Cowboy is working on it?

Bandit is thinking about it and has it on the roadmap:

3 Likes