The first stable release of the nghttp3 project, which develops a library in the language of SI with the implementation of the HTTP/3 protocol, has been announced. This library is based on the module mod_http2, which forms part of the composition of the HTTP server Apache, and is also involved in the Curl utility. The library code is available under the MIT license.
The HTTP/3 standard specifies the use of the QUIC (Quick UDP Internet Connections) protocol as a transport for HTTP/2. QUIC is a superstructure over the UDP protocol that supports multiplexing several compounds and provides encryption methods equivalent to TLS/SSL. It was created by Google in 2013 as an alternative to TCP+TLS for the Web and solves issues related to the high setup and coordination of connections in TCP, as well as eliminating delays in packet loss during data transfer.
The nghttp3 library provides an independent implementation of the following specifications: rfc 9114 (HTTP/3 on top of the QUIC protocol), rfc 920 (Qpack technology for compressing headers), rfc 9220 (transmission of websockets on top of HTTP/3), and rfc 9218 (expanded scheme for managing the priorities of sending answers to customer requests). The library is not dependent on specific QUIC implementations and supports work on top of different sales of the QUIC transport protocol. The project also includes its own implementation of the QUIC protocol, ngtcp2, which is applied by default. The backend for data encryption in ngtcp2 is supported by quictls, gnutls, boringssl, Picotls, and Wolfssl. Alongside nghttp3 1.0, the first stable release of ngtcp2 1.0 has also been published.