I was reading up on the new HTTP/3 standard and was wondering how ready are the Crystal web frameworks are for implementing/using it.
AFAIK all web frameworks build on top of HTTP::Server and that’s not ready for HTTP/3 at all. It doesn’t even support HTTP/2 (see #2125).
The wikipedia page lists implementations in C, C++, Go, Java, Python, and Rust, so at least Crystal devs/implementers don’t have to start from scratch, and also have ref implementations to test against.
In case quiche isn’t a good option to “learn” from, I recommend the open source and fully embeddable aws/s2n-quic, which doesn’t depend on BoringSSL and, instead, is compatible with embeddable TLS libraries, including aws/s2n-tls and rustls.
There is a LiteSpeed QUIC binding within the Crystal ecosystem and for the longest time it was used by Invidious. However, it is quite unstable and was the source of many problems for us.