Nghttp2

Last updated
nghttp2
Original author(s) Tatsuhiro Tsujikawa
Initial release2013
Stable release
1.66.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 17 June 2025;21 days ago (17 June 2025)
Repository github.com/nghttp2/nghttp2
Written in C
Platform macOS, Windows, POSIX
Type HTTP/2 implementation
License MIT License
Website nghttp2.org

nghttp2 is a C library. It is an implementation of HTTP/2.

Contents

History

nghttp2 was created by Tatsuhiro Tsujikawa as a derivative of spdylay, an implementation of SPDY, a communications protocol created by Google in 2009, in C. [2] [3]

Several well-known projects use nghttp2 to implement HTTP/2, including Apache and cURL. [4] [5]

Features

HTTP/2 implementation

nghttp2 will send a WINDOW_UPDATE frame upon consuming more than half of the flow control window. For instance, if the sender specifies the SETTINGS_INITIAL_WINDOW_SIZE[ sic ] as 65,535 octets in the SETTINGS frame, nghttp2 will send a WINDOW_UPDATE frame upon exceeding 32,768 octets. The initial window size may be changed using the -w and -W flags. [6]

Tools

nghttp2 offers multiple tools. nghttp is a command-line tool that uses nghttp2 to output HTTP/2 messages from a URL. [7] nghttp's dependency-based priority is based on Firefox; when a connection is established, nghttp sends five PRIORITY frames. [8] Other tools provided include nghttpd, an HTTP/2 server, nghttpx, an HTTP/2 proxy, h2load, an HTTP/2 load testing tool, and inflatehd and deflatehd, tools to decompress and compress using the HPACK header compression algorithm. [9]

nghttp3

nghttp3 is an implementation of HTTP/3 in C and authored by Tsujikawa. nghttp3 uses the QUIC network protocol designed by Jim Roskind at Google. [10]

References

Citations

  1. "Release nghttp2 v1.66.0 · nghttp2/nghttp2" . Retrieved 18 June 2025.
  2. Pollard 2019, p. 18.
  3. "nghttp2 - HTTP/2 C Library". nghttp2. Retrieved March 19, 2023.
  4. Pollard 2019, p. 347.
  5. Ludin & Garza 2017, p. 112.
  6. Pollard 2019, p. 233.
  7. Pollard 2019, p. 116.
  8. Pollard 2019, p. 128.
  9. Ludin & Garza 2017, p. 110.
  10. "The nghttp3 programmers' guide". nghttp2. 2020. Retrieved March 19, 2023.

Bibliography