nghttp2 implements the Hypertext Transfer Protocol, version 2 (HTTP/2).
A reusable C library provides the HTTP/2 framing layer, with several tools built on top of it:
nghttp
, a command-line HTTP/2 client. It exposes many advanced and low-level aspects of the protocol and is useful for debugging.nghttpd
, a fast, multi-threaded HTTP/2 static web server that serves files from a local directory.nghttpx
, a fast, multi-threaded HTTP/2 reverse proxy that can be deployed in front of existing web servers that don't support HTTP/2. Bothnghttpd
andnghttpx
can fall back to HTTP/1.1 for backwards compatibility with clients that don't speak HTTP/2.h2load
for benchmarking (only!) your own HTTP/2 servers.HTTP/2 uses a header compression method called HPACK. nghttp2 provides a HPACK encoder and decoder as part of its public API.
deflatehd
converts JSON data or HTTP/1-style header fields to compressed JSON header blocks.inflatehd
converts such compressed headers back to JSON pairs.