This repository has been archived by the owner. It is now read-only.

TODOs #4

Closed
jasnell opened this Issue Oct 12, 2016 · 11 comments

Comments

Projects
None yet
6 participants
@jasnell
Member

jasnell commented Oct 12, 2016

  • Check in nghttp2 deps, initial build support
  • Begin src/node_http2.cc and src/node_http2.h glue code
  • Begin lib/internal/http2.js implementation
  • Basic server
  • Graceful server side connection shutdown
  • Server server timeout handling / or, how to know when the server can shut down the socket
  • Are we leaking any memory?
  • Tests tests test tests
  • Benchmarks
  • Documentation

@jasnell jasnell self-assigned this Oct 12, 2016

@AnshulMalik

This comment has been minimized.

Show comment
Hide comment
@AnshulMalik

AnshulMalik Oct 19, 2016

Hi there !

I am new here. I have been using node for a while, now I'd like to contribute :)
I think I can do some work here. Please let me know some more details of implementation and current progress.

Hi there !

I am new here. I have been using node for a while, now I'd like to contribute :)
I think I can do some work here. Please let me know some more details of implementation and current progress.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Nov 1, 2016

Member

@AnshulMalik ... I'm in the process of working up some design docs for this that should help.

Member

jasnell commented Nov 1, 2016

@AnshulMalik ... I'm in the process of working up some design docs for this that should help.

@c0b

This comment has been minimized.

Show comment
Hide comment
@c0b

c0b Jan 15, 2017

wonder if there are any binaries published with this http2 in core? or do I have to compile from source code if I want to test play with?

how about make another rc channel like the nightly? you don't have to publish really every night, but some kind of CI pipelines to release binaries every week would be very nice
https://nodejs.org/download/nightly/

c0b commented Jan 15, 2017

wonder if there are any binaries published with this http2 in core? or do I have to compile from source code if I want to test play with?

how about make another rc channel like the nightly? you don't have to publish really every night, but some kind of CI pipelines to release binaries every week would be very nice
https://nodejs.org/download/nightly/

@joyeecheung

This comment has been minimized.

Show comment
Hide comment
@joyeecheung

joyeecheung Jan 15, 2017

Member

@c0b If I understand correctly this is not shipped in any binaries at the moment, it's in its own repo to separate the issues and PRs. From #26 (comment) I think this is going to be shipped behind flag in Node 8(April this year).

Member

joyeecheung commented Jan 15, 2017

@c0b If I understand correctly this is not shipped in any binaries at the moment, it's in its own repo to separate the issues and PRs. From #26 (comment) I think this is going to be shipped behind flag in Node 8(April this year).

@cebrakadabra

This comment has been minimized.

Show comment
Hide comment
@cebrakadabra

cebrakadabra Jan 19, 2017

@jasnell does it mean, by the time all of those todos (especially tests) are checked it will be available in nodejs core? which version are you guys considering going out with it?

also @joyeecheung is this info from you the official estimation for releasing http2 in node core?

cebrakadabra commented Jan 19, 2017

@jasnell does it mean, by the time all of those todos (especially tests) are checked it will be available in nodejs core? which version are you guys considering going out with it?

also @joyeecheung is this info from you the official estimation for releasing http2 in node core?

@joyeecheung

This comment has been minimized.

Show comment
Hide comment
@joyeecheung

joyeecheung Jan 20, 2017

Member

@cebrakadabra Er, no, I'm not involved in the HTTP2 implementation at the moment, this is just what I observed from #26 (comment)

we still plan to ship this behind a flag in Node 8.

Member

joyeecheung commented Jan 20, 2017

@cebrakadabra Er, no, I'm not involved in the HTTP2 implementation at the moment, this is just what I observed from #26 (comment)

we still plan to ship this behind a flag in Node 8.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell Jan 20, 2017

Member

No, this is just an informal list. The current plan is to try to get http/2 into 8.x as an experimental feature. When that will land is still undetermined.

Member

jasnell commented Jan 20, 2017

No, this is just an informal list. The current plan is to try to get http/2 into 8.x as an experimental feature. When that will land is still undetermined.

@c0b

This comment has been minimized.

Show comment
Hide comment
@c0b

c0b Jan 26, 2017

today just reading on this http://ivanjov.com/running-express-koa-and-hapi-on-http-2/ mentioned:

Developers have created two awesome modules for working with HTTP/2 protocol, http2 and spdy.

just wonder why you guys didn't pick up from either http2 or spdy npm module; I believe you guys are aware of those but still choosing to start with nghttp2 library, you have some comparisons since beginning? have documented somewhere? Pros and Cons

c0b commented Jan 26, 2017

today just reading on this http://ivanjov.com/running-express-koa-and-hapi-on-http-2/ mentioned:

Developers have created two awesome modules for working with HTTP/2 protocol, http2 and spdy.

just wonder why you guys didn't pick up from either http2 or spdy npm module; I believe you guys are aware of those but still choosing to start with nghttp2 library, you have some comparisons since beginning? have documented somewhere? Pros and Cons

@joyeecheung

This comment has been minimized.

Show comment
Hide comment
@joyeecheung

joyeecheung Jan 27, 2017

Member

@c0b I remember watching @jasnell 's talk at Node Interactive and the significant performance improvement of this one over the npm module was mentioned. Couldn't find the link to the slides/the benchmarks though, but the talk is on YouTube

Member

joyeecheung commented Jan 27, 2017

@c0b I remember watching @jasnell 's talk at Node Interactive and the significant performance improvement of this one over the npm module was mentioned. Couldn't find the link to the slides/the benchmarks though, but the talk is on YouTube

@mcollina

This comment has been minimized.

Show comment
Hide comment
@mcollina

mcollina Jan 27, 2017

Member

@c0b there are several reasons, but probably those have not been documented publicly apart from WG meeting notes.
To sum up, the modules you mentioned offer a significant slowdown in performance compared to HTTP1, making them not suitable for production uses apart from very specific cases. JS-only implementations happens because HTTP2 is a multiplexed protocol: doing this in JS-land is extremely costly (see also the multiplex module), I have done some research in that regard. To some extent, the problem is related to Garbage Collections and streams. We are still fighting against it, even if performance is almost on par with HTTPS.
This leaves us two options, doing a C++/C module within NPM, or doing it within core. Having http2 in core means that a) there is no compilation to be had for using http2, b) possible speedup by leveraging low-level APIs that are not available outside of core and, c) a good community outreach with the parallelism of http.

Member

mcollina commented Jan 27, 2017

@c0b there are several reasons, but probably those have not been documented publicly apart from WG meeting notes.
To sum up, the modules you mentioned offer a significant slowdown in performance compared to HTTP1, making them not suitable for production uses apart from very specific cases. JS-only implementations happens because HTTP2 is a multiplexed protocol: doing this in JS-land is extremely costly (see also the multiplex module), I have done some research in that regard. To some extent, the problem is related to Garbage Collections and streams. We are still fighting against it, even if performance is almost on par with HTTPS.
This leaves us two options, doing a C++/C module within NPM, or doing it within core. Having http2 in core means that a) there is no compilation to be had for using http2, b) possible speedup by leveraging low-level APIs that are not available outside of core and, c) a good community outreach with the parallelism of http.

@jasnell

This comment has been minimized.

Show comment
Hide comment
@jasnell

jasnell May 12, 2017

Member

This issue is out of date. Going to close it in favor of the list of currently open issues

Member

jasnell commented May 12, 2017

This issue is out of date. Going to close it in favor of the list of currently open issues

@jasnell jasnell closed this May 12, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.