nodejs / nodejs/node

quic: Add mechanism similar to waitUntilAvailable to create(Bi|Uni)directionalStream

Open
#65,321 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

quic
Dominant language
JavaScript
Stars
122k
Forks
37.3k
Avg merge
4d 2h
Merged PRs (30d)
283

Description

The webtransport W3 spec allows to pass the option waitUntilAvailable to functions creating streams,
see e,g, here for a bidi stream:

https://www.w3.org/TR/webtransport/#dom-webtransport-createbidirectionalstream

The idea is that if the stream number flow control is exhausted, you have the option for waitUntilAvailable, which if it is set to false throw and tells the caller, that the flow control window for streams is exhausted.

(Alternatively, we can also supply a property to query the current budget).

The same is true for unidirectional stream.

@jasnell @pimterry
What would you think is a good api for this?
P.S: After the stream and session data flow control handling got attention. I will probably after this is decided, activate my stream number flow control tests on webtransport. As the stream number flow control is a another playing field that can easily lead to stalls. (Though I do not know if something is wrong.....)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the WebTransport specification linked in the issue and the existing createBidirectionalStream and createUnidirectionalStream entry points. Compare the proposed waitUntilAvailable behavior with current stream-number flow-control handling and the alternative budget-query idea. Done requires an agreed API for both stream directions and tests covering exhausted and available flow-control windows.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
api, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.