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

http/2 and http/3 support #349

Open
ihmc3jn09hk opened this issue Feb 14, 2020 · 15 comments
Open

http/2 and http/3 support #349

ihmc3jn09hk opened this issue Feb 14, 2020 · 15 comments
Labels
enhancement New feature or request

Comments

@ihmc3jn09hk
Copy link
Contributor

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

@an-tao an-tao added the enhancement New feature or request label Feb 15, 2020
@kapilpipaliya
Copy link

https://nghttp2.org may be used to add HTTP/2 support

@LifeIsStrange
Copy link

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

@an-tao
Copy link
Member

an-tao commented Aug 3, 2020

Drogon does not depend on other HTTP libraries

@shivshankardayal
Copy link

This should be a high priority issue. Not having http2 support is a big problem.

@MCMocoder
Copy link

Drogon is really a perfect framework. But it is really a big problem that Drogon do not have http/2 support.

@rbugajewski
Copy link
Collaborator

Thanks for the feedback, and I agree. I think this is something we should tackle for the upcoming version 2.0.

@patlecat
Copy link

For when is HTTP2 support planned?

@rbugajewski
Copy link
Collaborator

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.

@tripleslash
Copy link
Contributor

tripleslash commented Apr 27, 2022

Is this actively being worked on on any branch?
Should be high prio issue imo

@JensHumke
Copy link

JensHumke commented Sep 28, 2022

Any updates on HTTP/3 compatibility?

@tripleslash
Copy link
Contributor

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

@an-tao
Copy link
Member

an-tao commented Feb 22, 2023

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?

@tripleslash
Copy link
Contributor

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.

@patlecat
Copy link

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.

@Zacorich
Copy link

Zacorich commented Jan 15, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests