Resolve the following 85 technical "build-missing-std-includes" debt issues: missing #include <optional> for 'std::optional' (google3-build-missing-std-includes) //depot/google3/gfe/address_utils/andromeda_socket_interface.h //depot/google3/gfe/gfe2/quic/gfe_quic_server_session_test.cc //depot/google3/net/quic/puppet/src/puppet_client_test.cc missing #include <ostream> for 'std::ostream' (google3-build-missing-std-includes) //depot/google3/gfe/gfe2/quic/http3_writer_test.cc //depot/google3/third_party/http2/adapter/nghttp2_test_utils.cc //depot/google3/third_party/http2/core/http2_trace_logging.cc //depot/google3/third_party/http2/decoder/decode_status.cc //depot/google3/third_party/http2/decoder/http2_frame_decoder.cc //depot/google3/third_party/http2/decoder/payload_decoders/altsvc_payload_decoder.cc //depot/google3/third_party/http2/decoder/payload_decoders/data_payload_decoder.cc //depot/google3/third_party/http2/decoder/payload_decoders/goaway_payload_decoder.cc //depot/google3/third_party/http2/decoder/payload_decoders/headers_payload_decoder.cc //depot/google3/third_party/http2/decoder/payload_decoders/priority_update_payload_decoder.cc //depot/google3/third_party/http2/decoder/payload_decoders/push_promise_payload_decoder.cc missing #include <limits> for 'std::numeric_limits' (google3-build-missing-std-includes) //depot/google3/gfe/gfe2/rundmc/overload_manager_test.h //depot/google3/third_party/http2/adapter/noop_header_validator_test.cc //depot/google3/third_party/http2/adapter/oghttp2_adapter_test.cc //depot/google3/third_party/http2/adapter/oghttp2_session.cc missing #include <atomic> for 'std::atomic' (google3-build-missing-std-includes) //depot/google3/net/quic/puppet/quic_post_handshake_server_fuzz_test.cc //depot/google3/net/quic/puppet/quic_tls_server_fuzz_test.cc missing #include <optional> for 'std::nullopt' (google3-build-missing-std-includes) //depot/google3/net/quic/puppet/src/puppet_client.cc missing #include <vector> for 'std::vector' (google3-build-missing-std-includes) //depot/google3/net/quic/puppet/src/puppet_client.cc //depot/google3/third_party/http2/adapter/adapter_impl_comparison_test.cc //depot/google3/third_party/http2/adapter/chunked_buffer.cc //depot/google3/third_party/http2/adapter/nghttp2_adapter.cc //depot/google3/third_party/http2/adapter/nghttp2_adapter_test.cc //depot/google3/third_party/http2/adapter/nghttp2_session_test.cc //depot/google3/third_party/http2/adapter/nghttp2_test.cc //depot/google3/third_party/http2/adapter/nghttp2_test_utils.cc //depot/google3/third_party/http2/adapter/nghttp2_util.cc //depot/google3/third_party/http2/adapter/test_frame_sequence.cc //depot/google3/third_party/http2/adapter/test_utils.cc missing #include <memory> for 'std::make_unique' (google3-build-missing-std-includes) //depot/google3/net/quic/puppet/src/puppet_client_test.cc //depot/google3/third_party/http2/decoder/http2_frame_decoder_test.cc missing #include <memory> for 'std::unique_ptr' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/adapter_impl_comparison_test.cc //depot/google3/third_party/http2/adapter/chunked_buffer.cc //depot/google3/third_party/http2/adapter/chunked_buffer_test.cc //depot/google3/third_party/http2/adapter/nghttp2_util_test.cc missing #include <string> for 'std::string' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/adapter_impl_comparison_test.cc //depot/google3/third_party/http2/adapter/callback_visitor_test.cc //depot/google3/third_party/http2/adapter/event_forwarder.cc //depot/google3/third_party/http2/adapter/header_validator.cc //depot/google3/third_party/http2/adapter/header_validator_fuzzer.cc //depot/google3/third_party/http2/adapter/header_validator_test.cc //depot/google3/third_party/http2/adapter/http2_protocol.cc //depot/google3/third_party/http2/adapter/nghttp2_adapter_test.cc //depot/google3/third_party/http2/adapter/nghttp2_session_test.cc //depot/google3/third_party/http2/adapter/nghttp2_test.cc //depot/google3/third_party/http2/adapter/nghttp2_util.cc //depot/google3/third_party/http2/adapter/nghttp2_util_test.cc //depot/google3/third_party/http2/adapter/noop_header_validator.cc //depot/google3/third_party/http2/adapter/oghttp2_adapter.cc //depot/google3/third_party/http2/adapter/oghttp2_session.cc //depot/google3/third_party/http2/adapter/oghttp2_session_test.cc //depot/google3/third_party/http2/adapter/recording_http2_visitor_test.cc //depot/google3/third_party/http2/adapter/test_frame_sequence.cc //depot/google3/third_party/http2/adapter/test_utils_test.cc //depot/google3/third_party/http2/core/http2_trace_logging.cc //depot/google3/third_party/http2/decoder/http2_structure_decoder_remaining_payload_test.cc //depot/google3/third_party/http2/hpack/decoder/hpack_block_collector_test.cc missing #include <cstring> for 'std::memcpy' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/callback_visitor.cc //depot/google3/third_party/http2/adapter/nghttp2_adapter.cc //depot/google3/third_party/http2/adapter/nghttp2_test_utils.cc //depot/google3/third_party/http2/adapter/nghttp2_util.cc //depot/google3/third_party/http2/adapter/test_utils.cc missing #include <utility> for 'std::move' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/chunked_buffer.cc //depot/google3/third_party/http2/adapter/chunked_buffer_test.cc //depot/google3/third_party/http2/adapter/event_forwarder.cc //depot/google3/third_party/http2/adapter/nghttp2_adapter.cc //depot/google3/third_party/http2/adapter/nghttp2_util.cc //depot/google3/third_party/http2/adapter/oghttp2_adapter.cc //depot/google3/third_party/http2/adapter/oghttp2_adapter_metadata_test.cc //depot/google3/third_party/http2/adapter/oghttp2_session_test.cc //depot/google3/third_party/http2/adapter/test_utils_test.cc //depot/google3/third_party/http2/core/http2_trace_logging.cc missing #include <algorithm> for 'std::copy' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/chunked_buffer_test.cc missing #include <initializer_list> for 'std::initializer_list' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/chunked_buffer_test.cc missing #include <utility> for 'std::pair' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/http2_protocol.cc //depot/google3/third_party/http2/adapter/nghttp2_callbacks.cc //depot/google3/third_party/http2/adapter/nghttp2_test.cc //depot/google3/third_party/http2/adapter/test_frame_sequence.cc missing #include <iterator> for 'std::back_inserter' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/nghttp2_adapter.cc missing #include <algorithm> for 'std::min' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/oghttp2_session.cc //depot/google3/third_party/http2/adapter/window_manager_test.cc missing #include <tuple> for 'std::tie' (google3-build-missing-std-includes) //depot/google3/third_party/http2/adapter/oghttp2_session.cc CL generated via Upkeep (go/upkeep). #upkeep #autofix #codehealth #cleanup PiperOrigin-RevId: 635885631
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 CONTRIBUTING.md.
QUICHE is only supported on little-endian platforms.