Dostępna jest pierwsza stabilna wersja projektu nghttp3, rozwijającego bibliotekę w języku C z implementacją protokołu HTTP/3. Rozwijana przez ten sam projekt wersja biblioteki dla protokołu HTTP/2 jest używana jako baza dla modułu mod_http2, wchodzącego w skład serwera http Apache. Osiągnięcia projektu są także wykorzystywane w narzędziu Curl. Kod biblioteki jest udostępniany na licencji MIT.
Standard HTTP/3 definiuje użycie protokołu QUIC (Quick UDP Internet Connections) jako transportu dla HTTP/2. QUIC to nadbudowa nad protokołem UDP, wspierająca multiplexing wielu połączeń i oferująca metody szyfrowania równoznaczne z TLS/SSL. Protokół został stworzony w 2013 roku przez firmę Google jako alternatywa dla zestawu TCP+TLS do zastosowań w sieci, rozwiązując problemy związane z dużym czasem nawiązywania i uzgadniania połączeń w TCP oraz eliminując opóźnienia związane z utratą pakietów podczas przesyłu danych.
W nghttp3 dostępna jest niezależna implementacja specyfikacji RFC 9114 (HTTP/3 na protokole QUIC), RFC 920 (technologia kompresji nagłówków QPACK), RFC 9220 (przesyłanie WebSocketów na HTTP/3) oraz RFC 9218 (rozszerzalny schemat do zarządzania priorytetami wysyłania odpowiedzi na żądania klienta). Biblioteka nie zależy od określonych stosów QUIC i wspiera działanie na różnych implementacjach protokołu transportowego QUIC. Przy tym projektem rozwijana jest również własna implementacja protokołu QUIC — ngtcp2, stosowana domyślnie. Jako backendy do szyfrowania danych w ngtcp2 wspierane są quictls, GnuTLS, BoringSSL, Picotls i wolfSSL. Jednocześnie z nghttp3 1.0 opublikowano również pierwszą stabilną wersję ngtcp2 1.0.
Źródło: opennet.ru
