Nghttp2
HTTP/2 library in C
From Wikipedia, the free encyclopedia
nghttp2 is a C library. It is an implementation of HTTP/2.
| nghttp2 | |
|---|---|
| Original author | Tatsuhiro Tsujikawa |
| Initial release | 2013 |
| Stable release | |
| Written in | C |
| Platform | macOS, Windows, POSIX |
| Type | HTTP/2 implementation |
| License | MIT License |
| Website | nghttp2 |
| Repository | github |
History
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]