Properly support RFC 9297

Our code has had support for draft-ietf-masque-h3-datagram-09 for a while, but now that it's been published as RFC 9297, we should have the code refer to the published names. This CL is mostly a functional no-op, with the exception of adding support for the datagram capsule type of 0x00. Since we never sent capsules, this doesn't change our sender behavior. On the receiver side, we'll still keep support for the old draft identifiers for a while.

HTTP Datagrams and capsules are not used in production on our servers, so this change is not flag-protected.

PiperOrigin-RevId: 484400359
12 files changed
tree: 9c22d27d8f1d162c8dbf861c22c1334269643a79
  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.