Skip to content

[WIP][Feat] Webtransport support - #915

Draft
Yanmei-Liu wants to merge 8 commits into
mainfrom
feat/webtransport
Draft

Yanmei-Liu wants to merge 8 commits into
mainfrom
feat/webtransport

Conversation

@Yanmei-Liu

@Yanmei-Liu Yanmei-Liu commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Mechanism

Adds initial WebTransport-over-HTTP/3 support, including public APIs and
callbacks for connections, sessions, requests, bidirectional and
unidirectional streams, and datagrams, and wires the implementation into the
build.

  • RFC or draft: draft-ietf-webtrans-http3-16 / draft-ietf-webtrans-http3-07

Validation Cases

  • Not run — this branch predates the current validation entry point and does
    not add WebTransport unit or client-to-server coverage.

CONTRIBUTING.md

  • Overall: Pending
  • Local regression: Incomplete — WebTransport unit and client-to-server coverage is missing
  • CI: Pending

@Yanmei-Liu Yanmei-Liu changed the title [feat]webtransport support [Feat] Webtransport support Aug 26, 2026
@Yanmei-Liu Yanmei-Liu changed the title [Feat] Webtransport support [WIP][Feat] Webtransport support Aug 26, 2026
…ake configuration

- Deleted obsolete video sync demo source files and headers to streamline the project.
- Updated CMakeLists.txt to remove references to the deleted files and simplify the build configuration.
* [=]: Add WebTransport functional and API specification

* [=]: Scope WebTransport spec to XQUIC implementation design

* [=]: Generalize WebTransport core across HTTP bindings

* [=]: Refine WebTransport adapter ownership model

* [=]: Define W3C semantic mapping boundary

* [=]: Define MoQT transport adapter boundary

* [=]: Remove duplicated WebTransport protocol rules

* [+]: Add immutable WebTransport server API specification (#949)

* [+]: Add draft-07 WebTransport server demo foundation (#950)

* [+]: Add draft-07 WebTransport server demo foundation

* [=]: Reduce WebTransport engine and H3 integration changes

* [=]: Move WebTransport stream dispatch into its adapter

* [=]: Replace H3 extension framework with WT ALPN callbacks

* [=]: Expose a common H3 setting registration API

* [=]: Mark Chrome draft-07 interoperability checks complete
* [+]: Add WebTransport draft-16 MVP with draft-07 compatibility

* [=]: Isolate reliable reset state in QUIC streams

* [=]: Reduce reliable reset state and reuse packet ACK tracking

* [=]: Explain WebTransport demo certificate rejection callback

* [=]: Move WebTransport client contracts to immutable API spec

* [-]: Remove unnecessary WebTransport client connection getter

* [+]: Add parallel WebTransport demo CI cases (#952)

* [+]: Add parallel WebTransport demo CI cases

* [~]: Run Build CI for all pull request target branches

* [=]: Rename WebTransport CI case helpers

* [~]: Include system types in WebTransport wire header

* [+]: Add WebTransport interop demos and protocol negotiation (#953)

* [+]: Add WebTransport application protocol negotiation

* [=]: Reuse demo runtime for WebTransport interop and CI

* [=]: Own WebTransport interop image packaging

* [=]: Document reviewed interop packaging lint exceptions

* [+]: Complete WebTransport interop transfer cases

* [=]: Bound WebTransport interop request fixtures

* [=]: Simplify WebTransport interop application

* [~]: Publish WebTransport image from official repository

* [=]: Replace WebTransport interop compile-time policy
* [+]: Add WebTransport message framing

* [+]: Add framed WebTransport demo probe

* [=]: Move optional WebTransport message API to framing spec
* [=]: Consolidate WebTransport demos and interoperability tests

Use one client/server binary pair and one WebTransport option parser per role. Let the public runner own the file-transfer matrix while native CI keeps focused protocol cases and CUnit guards application boundaries.

* [=]: Keep WebTransport runner result matrices rectangular

Run xquic-client and xquic-server interop matrices separately so the pinned runner can export complete JSON results for every tested pair.

* [=]: Avoid timing-dependent reset assertion in WebTransport case

Case 1834 already proves that malformed peer message length is rejected by the client and an oversized local length is rejected before connection. The client exits on parse failure, so peer receipt of its reset is not a reliable case condition.

* [=]: Reject skipped WebTransport interop matrices in CI

* [=]: Match upstream Docker Engine for WebTransport interop

* [=]: Reject WebTransport endpoint failures in interop CI

* [~]: Complete WebTransport interop responder on peer close

* [=]: Close WebTransport interop handshake sessions

* [=]: Enable pacing in WebTransport interop image

* [~]: Pace WebTransport interop datagram responses

* [~]: Separate WebTransport interop and engine timers

* [=]: Keep WebTransport interop matrix out of CI

* [=]: Consolidate WebTransport demo policy selection

* [=]: Match WebTransport policy header name

* [=]: Remove duplicate WebTransport interop unit tests
* [+]: Support concurrent WebTransport draft-16 sessions

* [=]: Align WebTransport draft-16 setting conditions

* [+]: Renew WebTransport session flow-control credit
…958)

* [=]: Fix draft-16 WebTransport session and stream handling

* [=]: Build WebTransport interop image from feat/webtransport

* [=]: Remove redundant WebTransport image branch head checks

* [=]: Keep WebTransport image instructions branch neutral

* [=]: Keep peer close response for later WebTransport drafts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants