Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

martenrichter
Copy link
Contributor

After the change the body parameter for all
created QuicStreams can take a ReadableStream
of Uint8Array, Arraybuffers etc..

We introduce a DataQueueFeeder class that may be
also used for other related mechanisms.

A locally created unidirectional Stream can not
have a reader. Therefore, the interface is changed
to handle this case. (undercovered when writing
the tests).

Furthermore, a ResumeStream must be added after
AddStream in QuicSession, as the ResumeStream
beforehand triggered with set_outbound is a no-op,
as Stream was not added to Session beforehand.

Fixes: #60234

@nodejs-github-bot 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 Oct 12, 2025
@martenrichter
Copy link
Contributor Author

@jasnell This try to add support for streams for outgoing data. I hope the PR is helpful and does not waste too much time. I have contributed long time ago 1-2 patches, but I am not that fluent with the node.js codebase.

After the change the body parameter for all
created QuicStreams can take a ReadableStream
of Uint8Array, Arraybuffers etc..

We introduce a DataQueueFeeder class, that may be
also used for other related mechanisms.

A locally created unidirectional Stream can not
have a reader. Therefore the interface is changed
to handle this case. (undercovered when writing
 the tests).

Furthermore, a ResumeStream must be added After
AddStream in QuicSession, as the ResumeStream
beforehand triggered with set_outbound is a no-op,
as Stream was not added to Session beforehand.

Fixes: nodejs#60234
Copy link

codecov bot commented Oct 12, 2025

Codecov Report

❌ Patch coverage is 69.63351% with 58 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.75%. Comparing base (3ac88a7) to head (ffa7338).
⚠️ Report is 31 commits behind head on main.

Files with missing lines Patch % Lines
src/quic/streams.cc 60.90% 25 Missing and 18 partials ⚠️
src/dataqueue/queue.cc 61.29% 11 Missing and 1 partial ⚠️
src/quic/streams.h 66.66% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #60237      +/-   ##
==========================================
+ Coverage   88.54%   88.75%   +0.21%     
==========================================
  Files         704      704              
  Lines      208123   208314     +191     
  Branches    40006    40073      +67     
==========================================
+ Hits       184280   184890     +610     
+ Misses      15877    15350     -527     
- Partials     7966     8074     +108     
Files with missing lines Coverage Δ
lib/internal/quic/quic.js 100.00% <100.00%> (ø)
src/quic/bindingdata.h 33.33% <ø> (ø)
src/quic/quic.cc 100.00% <100.00%> (ø)
src/quic/session.cc 37.64% <100.00%> (+8.55%) ⬆️
src/quic/streams.h 46.15% <66.66%> (+46.15%) ⬆️
src/dataqueue/queue.cc 67.96% <61.29%> (+3.32%) ⬆️
src/quic/streams.cc 34.59% <60.90%> (+31.39%) ⬆️

... and 54 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@martenrichter
Copy link
Contributor Author

There is a crash on some platforms. TODO for next weekend.

@trivikr trivikr added the quic Issues and PRs related to the QUIC implementation / HTTP/3. label Oct 14, 2025
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.

quic: body is lacking support for streaming

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.