FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

quic: start adding in the internal quic js api by jasnell · Pull Request #53256 · nodejs/node · GitHub

/ node Public

quic: start adding in the internal quic js api - #53256

Closed
jasnell wants to merge 2 commits into
nodejs:mainfrom
jasnell:quic-part-13
Closed

quic: start adding in the internal quic js api#53256
jasnell wants to merge 2 commits into
nodejs:mainfrom
jasnell:quic-part-13

Conversation

jasnell commented Jun 2, 2024

Copy link
Copy Markdown
Member

While the external API for QUIC is expected to be the WebTransport API primarily, this provides the
internal API for QUIC that aligns with the native C++ QUIC components. This is the first of several PRs that will fill out this part of the implementation. The goal of doing this incrementally is to make things easier to review by doing it in smaller chunks

nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels Jun 2, 2024
jasnell added the quic Issues and PRs related to the QUIC implementation / HTTP/3. label Jun 2, 2024
jasnell requested review from Qard and anonrig June 2, 2024 03:35
jasnell force-pushed the quic-part-13 branch 2 times, most recently from 1babee6 to 9f2f600 Compare June 2, 2024 04:03
jasnell requested a review from mcollina June 2, 2024 04:04
jasnell requested a review from tniessen June 2, 2024 14:30
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/datagrams.js Outdated
jasnell force-pushed the quic-part-13 branch 8 times, most recently from d4ea9c3 to f245d2c Compare June 2, 2024 22:14
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated

mcollina left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Unless a massive improvement is planned on WebStream, I would recommend not using them in this lower level. They are 1 order of magnitude slower than Node streams. Using them here would limit the applicability of our Quic implementation.

Just using functions and callbacks might even be faster.

splitice commented Jun 7, 2024

Copy link
Copy Markdown

Really interesting @jasnell .

Just a reminder we have continued to apply fixes to your original attempt many of which probably still apply today (latest branch: https://github.com/HalleyAssist/node/commits/test_quic16/ - not everything in this branch is relevant). Some fixes could probably done better with more drastic changes, however they all represent observed leaks, infinite loops or crashes observed in our staging and pilot environments.

Including yesterday a fix for blocking streams creating an infinite loop in SendPendingData (which can be tested for with rx packet loss simulation). When you do get a JS api I'll try and contribute some of these directly.

Comment thread lib/internal/quic/quic.js Outdated
Comment on lines +1288 to +1333
instance[kStats] = createStreamStats(handle.stats);
instance[kState] = createStreamState(handle.state);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Makes me a bit nervous that these names are a single character apart. High chance of typos in future maintenance.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Not ignoring this comment, just plan to address it in a subsequent iteration

Comment thread lib/internal/quic/quic.js Outdated
Comment thread lib/internal/quic/quic.js Outdated

This comment was marked as outdated.

Copy link
Copy Markdown
Collaborator

While the external API for QUIC is expected to be
the WebTransport API primarily, this provides the
internal API for QUIC that aligns with the native
C++ QUIC components.

nodejs-github-bot commented Sep 28, 2024
edited by jasnell
Loading

Copy link
Copy Markdown
Collaborator

jasnell added a commit that referenced this pull request Sep 29, 2024
While the external API for QUIC is expected to be
the WebTransport API primarily, this provides the
internal API for QUIC that aligns with the native
C++ QUIC components.

PR-URL: #53256
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
jasnell added a commit that referenced this pull request Sep 29, 2024
PR-URL: #53256
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

jasnell commented Sep 29, 2024

Copy link
Copy Markdown
Member Author

Landed in 103b843...858bce5

jasnell closed this Sep 29, 2024

targos commented Sep 30, 2024

Copy link
Copy Markdown
Member

This landed with failing Coverage CI, and now it fails for all PRs against main

Comment thread .nycrc
"tools/**",
"benchmark/**",
"deps/**"
"deps/**",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

This change is why coverage jobs error

targos pushed a commit that referenced this pull request Oct 5, 2024
While the external API for QUIC is expected to be
the WebTransport API primarily, this provides the
internal API for QUIC that aligns with the native
C++ QUIC components.

PR-URL: #53256
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
targos pushed a commit that referenced this pull request Oct 5, 2024
PR-URL: #53256
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
aduh95 mentioned this pull request Oct 9, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. quic Issues and PRs related to the QUIC implementation / HTTP/3.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants


Back | FazBrowse Home | New Git URL