Опубликована библиотека nghttp3 1.0 с реализацией протокола HTTP/3

Доступен первый стабильный релиз проекта nghttp3, развивающего библиотеку на языке Си с реализацией протокола HTTP/3. Развиваемый тем же проектом вариант библиотеки для протокола HTTP/2 используется в качестве основы модуля mod_http2, входящего в состав http-сервера Apache. Наработки проекта также задействованы в утилите Curl. Код библиотеки распространяется под лицензией MIT.

Стандарт HTTP/3 определяет использование протокола QUIC (Quick UDP Internet Connections) в качестве транспорта для HTTP/2. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL. Протокол был создан в 2013 году компанией Google в качестве альтернативы связке TCP+TLS для Web, решающей проблемы с большим временем установки и согласования соединений в TCP и устраняющей задержки при потере пакетов в процессе передачи данных.

В nghttp3 предоставляется независимая реализация спецификаций RFC 9114 (HTTP/3 поверх протокола QUIC), RFC 920 (технология сжатия заголовков QPACK), RFC 9220 (передача WebSockets поверх HTTP/3) и RFC 9218 (расширяемая схема для управления приоритетами отправки ответов на запросы клиента). Библиотека не зависит от определённых стеков QUIC и поддерживает работу поверх разных реализаций транспортного протокола QUIC. При этом проектом также разивается собственная реализация протокола QUIC – ngtcp2, применяемая по умолчанию. В качестве бэкендов для шифрования данных в ngtcp2 поддерживаются quictls, GnuTLS, BoringSSL,
Picotls и wolfSSL. Одновременно с nghttp3 1.0 опубликован и первый стабильный релиз
ngtcp2 1.0.

Release. Ссылка here.