Contact emails [email protected]
Explainer https://github.com/w3c/webtransport/blob/main/explainer.md#9-transactional-writes-and-reliable-reset Specification https://w3c.github.io/webtransport/#webtransportwriter Summary Adds the WebTransportWriter interface for outgoing WebTransport streams. WebTransportSendStream.getWriter() returns a specialized writer extending WritableStreamDefaultWriter with two methods. atomicWrite(data) admits the complete write only when sufficient stream and connection flow-control credit is available; if the complete chunk does not fit, none of it is admitted and the stream remains usable. commit() marks successfully written bytes as a reliable prefix to be transmitted if the stream is subsequently aborted, provided the connection remains available. Atomic writes help prevent application-protocol flow-control deadlocks, but they do not preserve message boundaries or guarantee delivery in a single network packet. Blink component Blink>Network>WebTransport Web Feature ID webtransport Motivation Applications commonly implement framed protocols over WebTransport streams. A normal stream write can be accepted only partially at the transport layer, which can cause a flow-control deadlock when the peer needs the complete frame before it can process data and release more credit. atomicWrite() provides all-or-nothing admission for these writes. commit() enables partial reliability: an application can commit an important prefix and later abort an obsolete suffix without losing the committed data. These capabilities are useful for real-time media, games, remote access, and other latency-sensitive applications. Initial public proposal https://github.com/w3c/webtransport/issues/426 Goals for experimentation None Requires code in //chrome? False Tracking bug https://issues.chromium.org/issues/487117768 Availability expectation The feature is expected to become available across major browsers as part of the W3C WebTransport specification. Firefox and WebKit have not yet provided formal implementation signals for WebTransportWriter, but broader availability is expected as browser engines converge on the specification. Adoption expectation Adoption is expected to be focused rather than universal because the API addresses advanced WebTransport use cases. It is likely to be adopted by real-time media, gaming, remote-access, and application-protocol libraries that need to avoid framing-related flow-control deadlocks or reliably deliver an important prefix while discarding an obsolete suffix. Existing WebTransport applications do not need to migrate. Adoption plan Adoption is expected to happen organically among WebTransport protocol libraries and latency-sensitive applications that need atomic flow-control admission to avoid framing deadlocks or reliable delivery of an important prefix when aborting an obsolete stream suffix. Estimated milestones No milestones specified Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (eg links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (eg, changing to naming or structure of the API in a non-backward-compatible way). No major changes to the JavaScript API shape are currently anticipated. Editorial clarifications and adjustments based on implementation experience and interoperability testing remain possible. The reliable-reset mechanism underlying commit() is still progressing through the IETF QUIC Working Group, so Chromium will track any protocol-level changes before shipping. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5073738176528384?gate=5073842463703040 This intent message was generated by Chrome Platform Status. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6abd7efd.b816ca50.7065.0547.GAE%40google.com.
