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

QUIC implementation #2379

Open
aggarwaldev opened this issue Jul 7, 2020 · 19 comments
Open

QUIC implementation #2379

aggarwaldev opened this issue Jul 7, 2020 · 19 comments
Labels
feature request New feature to be added

Comments

@aggarwaldev
Copy link

aggarwaldev commented Jul 7, 2020

🚀 Feature Proposal

Implementation of QUIC https://tools.ietf.org/html/draft-ietf-quic-transport-27

RFC: https://datatracker.ietf.org/doc/rfc9000/

More related RFCs:

About QUIC:

This shall pave way for implementation of HTTP/3 since HTTP over QUIC is proposed to be called HTTP/3. QUIC will likely be used for transporting more than just HTTP.

Motivation

Misc

QUIC will likely be used for transporting more than just HTTP.

This turned out to be true. Checkout WebTransport: https://datatracker.ietf.org/doc/draft-ietf-webtrans-http3/

Example

N/A

@mcollina
Copy link
Member

mcollina commented Jul 7, 2020

A few interesting points: Fastify was the first framework for Node.js to support HTTP/2 and this was part of the initial idea of using our own custom Request and Reply objects. I was one of the devs that added HTTP/2 support on Node.js. I expect we add HTTP/3 support as soon as it lands on core. We have little to do here until that happens.

I would recommend you to join the discussion in core and see if you could help in implementing some of it.

cc @jasnell

@aggarwaldev
Copy link
Author

@mcollina Thank you so much for considering me. I would love to take this opportunity. Do let me know if you need any help

@delvedor delvedor added the feature request New feature to be added label Jul 7, 2020
@niklasgrewe
Copy link

i would also be happy if fastify is one of the first web frameworks for nodejs that support QUIC 👍 As I have seen, iOS 14 seems to have implemented QUIC experimentally.

1606B76F-AF10-43F0-8BFE-7ED1D5BCEB53

@aggarwaldev
Copy link
Author

@mcollina Node.js v15 (Current) supports QUIC.

Ref: https://github.com/nodejs/node/releases/tag/v15.0.0

@mcollina
Copy link
Member

I'd be happy to review some (external) modules/plugins etc that can enable us to use QUIC/HTTP3 internally. There is no HTTP/3 in core, nor any binary of Node.js with Quic enabled.... because we need a patch on top of OpenSSL that they are not adding: https://www.openssl.org/blog/blog/2020/02/17/QUIC-and-OpenSSL/.

@jasnell
Copy link
Contributor

jasnell commented Oct 22, 2020

@aggarwaldev ... The quic support in Node.js 15 is still under active development, is not yet officially supported, and still has a long way to go, not to mention the fact that it relies on an unofficial patch to openssl that is unsupported. I'm currently exploring a few options to move things forward, but, given that the Openssl omc has decided not to pick up official quic support until well after openssl 3.0 is out the door, it's going to take some time

@adminy
Copy link

adminy commented Dec 16, 2020

Suppose Node.js releases a final working quic with nothing experimental could fastify core benefit from Quic out of the box or will the api have to be exposed in a certain manner to benefit from it?

@jasnell
Copy link
Contributor

jasnell commented Dec 16, 2020

Out of the box, no, there would need to be some work in fastify to enable it because it would be a different set of APIs. Once that internal work is done, however, for end users of fastify it should require nothing more than a configuration option.

@flawnn
Copy link

flawnn commented Aug 31, 2021

How is it looking as of today with QUIC?

@mcollina
Copy link
Member

How is it looking as of today with QUIC?

Same as 9 months ago.

@erulabs
Copy link

erulabs commented Dec 15, 2021

Are the any behind the scenes happenings now that Node.js 17 uses OpenSSL 3.0? https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V17.md#openssl-30 - seems this can move forward? Edit: It is moving forward! More info here: nodejs/node#38233

@ivanjeremic
Copy link

Are the any behind the scenes happenings now that Node.js 17 uses OpenSSL 3.0? https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V17.md#openssl-30 - seems this can move forward? Edit: It is moving forward! More info here: nodejs/node#38233

Awesome, hope fastify will be first to use quic.

@mrinc
Copy link

mrinc commented Jun 20, 2023

hows this going?

@Eomm
Copy link
Member

Eomm commented Jun 20, 2023

We need to wait this: nodejs/node#44325

@MarianoFacundoArch
Copy link

This is finally merged!

@mcollina
Copy link
Member

doesn't look like it

@hg0428
Copy link

hg0428 commented Dec 13, 2024

How's this going?

@jasnell
Copy link
Contributor

jasnell commented Dec 13, 2024

Progress is being made... albeit slowly. I'm hoping to actually finish up the last few bits to be able to land the experimental API by end of december. Will update here when it's done.

@hg0428
Copy link

hg0428 commented Dec 13, 2024

Progress is being made... albeit slowly. I'm hoping to actually finish up the last few bits to be able to land the experimental API by end of december. Will update here when it's done.

Thanks for the update and for working on this. This is definitely a feature that would be nice to implement.

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

No branches or pull requests