-
Notifications
You must be signed in to change notification settings - Fork 937
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 Support? #667
Comments
I'm think it will be great to implement http2 support in gevent. |
I vote for leveraging Hyper. (As much as necessary. I assume gevent would only use its HTTP/2 parser, and perhaps a minimal subset of its runtime protocol support.) HTTP/2 in gevent is definitely going to be a welcomed addition, and deferring to another project for maintaining the complexity seems perfectly reasonable. As far as adding PROXY protocol support, sure, why not! The spec is really quite basic: http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt That said, I'm unfamiliar with all of the peculiarities of WSGI... |
Here's new library: hyper-h2 for only protocol layer. |
I would prefer a protocol engine that expected to speak that protocol to a generic asynchronous interface rather than speaking it directly to a socket. And it would be nice if that were true on both sides. I would like to be able to have a relatively generic asynchronous server to be able to talk to the HTTP/2 layer as well. But that sort of goes without saying and is how most people design things like this. The socket thing isn't. |
I know you guys where looking for something that is just an interface to this from the last comment @Omnifarious left and it appears that the nghttp2 library might fit the bill for such a requirement? I didn't know if you guys looked at this or not. They have some pretty straightforward python bindings, and it should be something that is easy to bundle with the package. Just wanted to throw it out there just in case. I'm currently experimenting with these bindings so I suppose I'll let you know what I find! |
@ProtonScott interesting project, need to look it deeper.. |
Not sure WSGI - the web application interface layer - needs to support any particular version of HTTP. The web server handling requests should already be able to do that and pass on HTTP2 requests to WSGI via its socket interface, or however the webserver has chosen to implement WSGI. None of that requires HTTP2 support in gevent's implementation of WSGI, nor should gevent be handling client requests directly as it's not a web server. Have in the past used HTTP2 via apache with WSGI and gevent. From the client's perspective that is HTTP2. How the web server communicates with the WSGI application is not really relevant to the client. |
I would agree with that. H2 is basically a multiplexing of streams into a socket. If you demultiplex into individual WSGI requests, WSGI stays the same. This is irrespective of gevent or threading or MP. |
gevent.pywsgi
is an implementation of the WSGI spec for HTTP <= 1.1. However, HTTP 2 is now the "current" version of the HTTP spec and support is becoming more widespread. That leads to a number of questions, at least:The text was updated successfully, but these errors were encountered: