Do not wait for settings when only RFC 9297 is supported

Back with cl/365819131, support was added to buffer incoming streams when WebTransport is in use because our WebTransport code rejects requests when it hasn't received the right settings. Later, cl/399795495 added support for draft-ietf-masque-h3-datagram-04 while still supporting draft-ietf-masque-h3-datagram-00. Because those had wire format differences, we needed to also wait for settings before using MASQUE to ensure negotiation of a draft version had completed. Now that draft-ietf-masque-h3-datagram has been published as RFC 9297, our new MASQUE code only supports that version of draft-ietf-masque-h3-datagram so we don't need to wait for settings in that case.

This CL doesn't require flag protection because datagram support is never enabled on production servers today.

This Cl also makes it possible to default-enable RFC 9297 at a future date since it'll no longer cause performance issues.

PiperOrigin-RevId: 516619954
1 file changed
tree: dc00e26c315428f4d9488c25a29fdef558def050
  1. build/
  2. depstool/
  3. quiche/
  4. .bazelrc
  5. BUILD.bazel
  10. WORKSPACE.bazel


QUICHE stands for QUIC, Http, Etc. It is Google‘s production-ready implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools. It powers Google’s servers, Chromium, Envoy, and other projects. It is actively developed and maintained.

There are two public QUICHE repositories. Either one may be used by embedders, as they are automatically kept in sync:

To embed QUICHE in your project, platform APIs need to be implemented and build files need to be created. Note that it is on the QUICHE team's roadmap to include default implementation for all platform APIs and to open-source build files. In the meanwhile, take a look at open source embedders like Chromium and Envoy to get started:

To contribute to QUICHE, follow instructions at

QUICHE is only supported on little-endian platforms.