node icon indicating copy to clipboard operation
node copied to clipboard

HTTP/3 support

Open pimterry opened this issue 4 years ago • 58 comments

As far as I can tell, there's currently no open issue explicitly tracking for QUIC or HTTP/3. Selfishly I'm very interested in knowing when this is available, so I'd personally find it very valuable to have an issue (this issue) tracking the current state and progress.

To document the current state:

  • QUIC was tracked in https://github.com/nodejs/node/issues/23064
  • That was closed when the experimental implementation was started
  • That entire implementation was later removed due to lack of support in OpenSSL
  • We've now moved to the Quictls fork of OpenSSL to avoid being blocked by OpenSSL's approach to implementing QUIC
  • There's a draft QUIC implementation being worked on here.
  • That QUIC implementation is a prerequisite for any HTTP/3 implementation (so we're still a way off)

@jasnell I think you've been doing most of the legwork here (thank you!), is that about right?

Feel free to close this if it's a problem to create feature requests like this, but I suspect there's likely to be lots of people interested in QUIC & HTTP/3, so a central issue documenting it is pretty useful imo.

pimterry avatar Apr 30 '21 08:04 pimterry

Opening a tracking issue is perfectly fine :)

And yes, I'm working on reintroducing quic and http3 now. It's going to take a bit of time since it's not the only thing I have on my plate at the moment but it is coming. I'll provide a more detailed update later today

jasnell avatar Apr 30 '21 12:04 jasnell

Subscribing to the issue. In an internal test I saw that HTTP/3 improved bounce rate and conversion rate, especially with users on poor connections.

@jasnell loving your work. I don't think at my skill level I can be of any help, but let me know.

espoal avatar May 11 '21 12:05 espoal

Great work on this @jasnell. Looking forward for your contribution in developing this. In this latest era of remote worlds (thanks to COVID), the need for this QUIC & HTTP/3 support in Nodejs is undeniable.

Let me know if you need some assitance.

ramsundhar20 avatar May 17 '21 08:05 ramsundhar20

Any updates here? QUIC has been approved as RFC-9000.

rekire avatar Jun 01 '21 18:06 rekire

Work is underway. I'm reworking the underlying impl. Expect an update in about a week

jasnell avatar Jun 01 '21 19:06 jasnell

Hi @jasnell, I guess you have a lot to do at nearforms. Are there any updates on this issue? Or is it already possible to somehow do experimental QUIC based application implementations within its current state in node.js?

boaerosuke avatar Jun 30 '21 08:06 boaerosuke

@boaerosuke I think this is becoming a blocker for this issue, so work is still progressing.

espoal avatar Jul 01 '21 16:07 espoal

Work is still progressing. Slow going, but moving forward.

jasnell avatar Jul 03 '21 03:07 jasnell

Thanks for your feedback! Absolutely appreciating your work!

boaerosuke avatar Jul 05 '21 15:07 boaerosuke

rustalot has contributed $75.00 to this issue on Rysolv.

The total bounty is now $75.00. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Jul 07 '21 00:07 rysolv-bot

Hey @jasnell, feel free to remove if off topic. I added a bounty on this issue. Understandably it's more that $75 worth of work, but wanted to chip in towards your work.

rustalot avatar Jul 07 '21 00:07 rustalot

An anonymous user has contributed $50.00 to this issue on Rysolv.

The total bounty is now $125.00. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Aug 10 '21 23:08 rysolv-bot

Just an update... the basic support is implemented. The PR is ready for review tho overall it's still far from done.

jasnell avatar Aug 10 '21 23:08 jasnell

An anonymous user has contributed $20.00 to this issue on Rysolv.

The total bounty is now $145.00. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Aug 10 '21 23:08 rysolv-bot

james you're gonna be rich soon 🤑

devsnek avatar Aug 10 '21 23:08 devsnek

An anonymous user has contributed $57.10 to this issue on Rysolv.

The total bounty is now $202.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Aug 13 '21 19:08 rysolv-bot

jhurliman has contributed $10.00 to this issue on Rysolv.

The total bounty is now $212.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Oct 14 '21 05:10 rysolv-bot

~~Unfortunately it seems we've met a blocker: OpenSSL QUIC support has been delayed by at least 12 to 18 months.~~

More information here.

espoal avatar Oct 17 '21 14:10 espoal

It's not a blocker at this point. We're currently using the quictls fork of OpenSSL

jasnell avatar Oct 17 '21 15:10 jasnell

@jasnell Great to know that it's not a blocker. Awaiting for this feature.

ramsundhar20 avatar Dec 23 '21 06:12 ramsundhar20

Cheer up @jasnell ! Can't wait to do benchmarks on node http3

shlinka avatar Dec 26 '21 04:12 shlinka

An anonymous user has contributed $20.00 to this issue on Rysolv.

The total bounty is now $232.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Dec 26 '21 04:12 rysolv-bot

An anonymous user has contributed $10.00 to this issue on Rysolv.

The total bounty is now $242.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Jan 14 '22 08:01 rysolv-bot

pahlers has contributed $20.00 to this issue on Rysolv.

The total bounty is now $262.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Jan 19 '22 21:01 rysolv-bot

An anonymous user has contributed $10.00 to this issue on Rysolv.

The total bounty is now $272.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Feb 11 '22 21:02 rysolv-bot

pimterry has contributed $1000.00 to this issue on Rysolv.

The total bounty is now $1272.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Feb 15 '22 15:02 rysolv-bot

An anonymous user has contributed $10.00 to this issue on Rysolv.

The total bounty is now $1282.10. Solve this issue on Rysolv to earn this bounty.

rysolv-bot avatar Feb 25 '22 16:02 rysolv-bot

While we are all desparately waiting for bullet proof http/3 in node, I made a duct tape solution using library quiche (https://github.com/google/quiche), you can find it here: https://github.com/fails-components/webtransport . Just passed initial tests, and not released yet, input and PR are welcome. And the addon is currently only limited to http/3 webtransport and building only tested on linux, since this what I needed. I also think, from this point, normal request and resolv handling (so normal http/3) could be added easily (may be 5 . However, I do not need it for my project, but I will offer supports and guidance, if someone wants to make a PR and contribute.

Once native support for webtransport arrives in node, I will probably use the native support and drop the project, but until then.

martenrichter avatar Feb 27 '22 14:02 martenrichter

Subscribing to the issue. It was recently introduced by the http3 internet draft. I'm leaving this comment to contribute to the resolution of Issue. You'll see that there is interest, and maybe support will arrive sooner.

How are things going right now? Will I see http3 and QUIC support in v18?

salihguru avatar Apr 13 '22 19:04 salihguru

Subscribing to the issue. It was recently introduced by the http3 internet draft. I'm leaving this comment to contribute to the resolution of Issue. You'll see that there is interest, and maybe support will arrive sooner.

How are things going right now? Will I see http3 and QUIC support in v18?

if you help implement it instead of just bugging the people who are so kindly doing so for us, maybe... lol

hellafont avatar Apr 14 '22 05:04 hellafont