Highlighting Hypercorn. #1105
Replies: 4 comments 5 replies
-
Emmm... is that means http2 support is put off? Accroding to this benchmark, uvicorn achieved roughly 40% more throughput than the others in this test. If uvicorn could support other protocols(like http2) at the same time, it will hava a more vibrant server ecosystem.As for "structured concurrency principles", users may not care about this. |
Beta Was this translation helpful? Give feedback.
-
This implies closing the door for structured concurrency ( |
Beta Was this translation helpful? Give feedback.
-
I'm all for highlighting alternatives - not sure I'd care too much about Daphne, though it does seem to have been pretty reliable over the years, likely thanks to a lot of the Twisted folks' work. |
Beta Was this translation helpful? Give feedback.
-
I think the community doesn't have much desire for Python HTTP/2 or HTTP/3 servers, but does have a very strong desire for fast HTTP/1 servers. I put this down to production usages having something that terminates the HTTP/2 (or 3) between the Python server and the browser and that neither HTTP/2 or 3 provide a strong gain within a data center. (I am committed to support both in Hypercorn though, with HTTP/3 waiting on openSSL support). I this regard I think if uvicorn focuses on being the fastest HTTP/1 ASGI server then the community will be well served. As for structured concurrency, I think we will be waiting a number of years before we can use it in asyncio unless we stop supporting Python versions. I don't think the community would approve if we did drop versions early - a very large fraction Hypercorn users are using a version that supports Python 3.6 which I stopped supporting a couple of years ago. Edit: This assumes the |
Beta Was this translation helpful? Give feedback.
-
So,
I think we'd do well to highlight alternate ASGI servers way more prominently. Likely on the README/homepage.
Hypercorn is particularly worthy of note here simply because of the way the landscape has evolved...
We could also consider highlighting Daphne, too. Pretty sure that'll have had a good chunk of traffic flowing through it, it's been around longer than Uvicorn, has had stacks of usage in the Django community, and is likely a very resilient option as a result.
There's also a decent case to make that having diversity of design aims amongst the server ecosystem would serve the community better, than having us aim at the same targets. There's an argument here to be made that #1026 is perhaps not something we ought to aim for. Arguably we might prefer that...
(There's a similar conversation I've seen voiced around a whole bunch of dynamic programming languages all just evolving to be variants of the same monoculture approach, and the trade-offs between that generalist approach, vs. having some very particularly targeted languages spaces that eschew the centre-point. Eg. the very specific design constraints that Go chooses to sit within.)
In any case I think a vibrant server ecosystem would serve us all well here. Uvicorn is perhaps a bit dominant, so using that platform to highlight alternatives would be a great idea.
/cc @andrewgodwin, @pgjones perhaps?
Beta Was this translation helpful? Give feedback.
All reactions