Open ihmc3jn09hk opened 4 years ago
https://nghttp2.org may be used to add HTTP/2 support
Off topic but what is the HTTP1/1.1 library currently used by drogon? I'm curious because it seems to best the fastest HTTP framework https://www.techempower.com/benchmarks/#section=data-r19&hw=cl&test=composite
Drogon does not depend on other HTTP libraries
This should be a high priority issue. Not having http2 support is a big problem.
Drogon is really a perfect framework. But it is really a big problem that Drogon do not have http/2 support.
Thanks for the feedback, and I agree. I think this is something we should tackle for the upcoming version 2.0.
For when is HTTP2 support planned?
As you can see we talked about this already a longer time ago. HTTP/2 is (compared to its predecessor) much more complex in its specification.
That said, every contribution is welcome. Unfortunately there is no official ETA.
Is this actively being worked on on any branch? Should be high prio issue imo
Any updates on HTTP/3 compatibility?
I realize HTTP 3 is a very complicated topic. Maybe its worth to check if we can add a lib that already implements it? And just wrap it in drogon? I think its necessary for a http framework to also support new http standards if the project wants to stay alive
@an-tao
I realize HTTP 3 is a very complicated topic. Maybe its worth to check if we can add a lib that already implements it? And just wrap it in drogon? I think its necessary for a http framework to also support new http standards if the project wants to stay alive
@an-tao
Yes, I agree with you, what library do you recommend?
Yeah I was also about the suggest nghttp2/3 they were early to the party and seem to support HTTP/3 for a while now.
I haven't used any HTTP 3 library myself so I can't recommend one but the most popular one without much bloat seems to be the nghttp3 library. There is also quiche which is written in Rust but provides C bindings of the API.
I can suggest to focus on HTTP 3 only to save time. Also considering that Google MUST support the most complete implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools, they already doing it in C++ in this repository (No need to use bindings): https://github.com/google/quiche . Also QUIC was started by Google so it is most likely the standard will be best implemented and supported from within Google too - https://peering.google.com/#/learn-more/quic -> https://datatracker.ietf.org/doc/html/rfc9000 -> https://datatracker.ietf.org/doc/html/rfc9114 . Google recommends to follow their Chromium code base for client implementation and Envoy for server implementation.
Wishing there is http/2 and possibly http3 ( http/2 + quic ) supported by Drogon. Not sure the prediction algorithm in http/2 is complicated or not. Possible reference