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/3 or QUIC support? #927

Open
photocyte opened this issue Jul 18, 2022 · 3 comments
Open

HTTP/3 or QUIC support? #927

photocyte opened this issue Jul 18, 2022 · 3 comments
Milestone

Comments

@photocyte
Copy link

Hi there,

Thanks for working on Jupyter Server! I really enjoy using Jupyter (Lab) in my work.

One issue I have sometimes encountered, is my unoptimized/verbose scripts pump too much text to the web interface via a %%bash code block, & the web interface can hang / behave strangely as it presumably starts missing messages. I was wondering if "next gen" web transport technologies like HTTP/3 or QUIC, could help solve this, or at least make it happen at a higher threshold of text bandwith?

I gave a search of the issues, and the 2022 meeting minutes (jupyter-server/team-compass#15), and the Discourse forum, & I didn't see future Jupyter Server support for HTTP/3 or QUIC addressed. I am not up to date on the official HTTP/3 standardization process (I think it recently was given a stable release?), but I will note that as of now both Chrome & Safari have implemented an optional enable for HTTP/3 support.

Would be curious to hear your thoughts on this.

@welcome
Copy link

welcome bot commented Jul 18, 2022

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! 🤗

If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively.
welcome
You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! 👋

Welcome to the Jupyter community! 🎉

@Zsailer
Copy link
Member

Zsailer commented Jul 18, 2022

Thanks for working on Jupyter Server! I really enjoy using Jupyter (Lab) in my work.

❤️

I didn't see future Jupyter Server support for HTTP/3 or QUIC addressed.

Jupyter Server depends entirely on and runs a Tornado web server under the hood. AFAIK, Tornado doesn't support HTTP/3 or QUIC (it doesn't event support HTTP/2 officially) and it doesn't appear to have plans to support it in the near future. To get HTTP/3 or QUIC support, we'd want it to land in Tornado directly. It might be worth commenting on this thread to show interest in adding HTTP/3 support there.

Would be curious to hear your thoughts on this.

You might be interested in Jupyverse—an alternative implementation of Jupyter Server. It runs uvicorn, an ASGI server, under the hood and might help alleviate some of the hanging behavior you're seeing...

@Zsailer Zsailer added this to the Future milestone Jul 18, 2022
@consideRatio
Copy link
Contributor

consideRatio commented Aug 18, 2022

Thanks for raising and clarifying the state of things! I became curious after seeing this video that helped me understand a lot of the HTTP3/quick topics: https://www.youtube.com/watch?v=cdb7M37o9sU.

One key feature of http3/quic is to be able to avoid roundtrips during startup. To reduce the amounts of roundtrips maximally one should probably also be the front-facing webserver that does the TLS encryption/decryption, so I'm curious if its benefits or possibility to use a proxy server (nginx, apache) with http3/quick support (nginx? apache?) in front of a http1 or http2 server.

EDIT: nginx doesn't support http3/quick, but they have experimental branches with it, see kubernetes/ingress-nginx#4760 and https://quic.nginx.org/README

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants