This directory contains C++ code implementing the HTTP/2 protocol.
Much of this code was written originally as a collaboration between the Chromium networking and Google Front End teams while developing the experimental SPDY protocol. SPDY was later standardized as HTTP/2.
http2/adapter/
This subdirectory contains general purpose HTTP/2 protocol handling libraries. The oghttp2_adapter
library can be used in combination with an event loop, a TLS library, and a socket library to make a complete HTTP/2 client or server.
http2/core/
This subdirectory contains core utilities, including constants, data structures, and some common entry points that can be used to parse and serialize HTTP/2 protocol elements.
http2/decoder
This subdirectory contains a decoder for the HTTP/2 wire format, written from scratch by James Synge. This decoder is used by Chromium-based browsers, the Google Front End reverse-proxy, and Envoy-based proxies.
http2/hpack
This subdirectory contains a decoder and encoder for the HPACK compression algorithm
http2/test_tools
This subdirectory contains test utilities that facilitate writing unit tests for code in the other subdirectories.
Some people who have contributed to this codebase include: