Publikimi i versionit të parë stabil të bibliotekës GNU libmicrohttpd.

Проект GNU опубликовал выпуск библиотеки libmicrohttpd 1.0.0, который отмечен как первый стабильный релиз за 16 лет существования проекта. Библиотека написана на языке Си и представляет простой API для встраивания функциональности HTTP-сервера в приложения. Среди поддерживаемых платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 и z/OS. Код распространяется под лицензией LGPL 2.1+. При сборке по умолчанию библиотека занимает около 200 КБ, а в минимальном режиме сборки — 32 КБ. В зависимостях используется только libc, а также libgnutls при опциональной сборке с поддержкой TLS.

Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементальную обработку POST-запросов, приём соединений с нескольких сетевых портов, basic- и digest-аутентификацию, IPv6, SHOUTcast, различные методы мультиплексирования соединений (select, poll, epoll) и модели многопоточности (например, можно использовать пул потоков или поток на соединение). Для снижения накладных расходов, возникающих при переключении контекста между ядром и пространством пользователя, число системных вызовов в процессе работы сведено к минимуму. Безопасность кодовой базы libmicrohttpd подтверждена аудитами, проведёнными компаниями Mozilla и Red Hat.

Наиболее заметные изменения по сравнению с прошлым выпуском:

  • Переписан и приведён к полному соответствию требованиям RFC 9110 и 9112 код для разбора запросов клиентов. Предоставлены режимы строгого и мягкого соблюдения спецификаций для балансирования между совместимостью или более высокой безопасностью.
  • Переработана реализация digest-аутентификации, в которой значительно расширена поддержка возможностей, присутствующих в RFC 7617. В том числе обеспечена поддержка SHA-512, userhash и username в расширенной нотации. Также сохранена поддержка старого RFC 2069 и возможность использования хэшей MD5 и SHA-256.
  • Улучшена работа в многопоточных окружениях и при режимах полинга сокетов.
  • Переработана реализация basic-аутентификации, для которой в ABI предложены дополнительные функции.
  • Переделан код для инициализации GnuTLS. Добавлена возможность использования как типовой, так и специфичной для libmicrohttpd системной конфигурации GnuTLS, а также поддержка переопределения отдельных настроек системной конфигурации GnuTLS.

В дальнейшем планируется заняться разработкой ветки libmicrohttpd 2, в которой будет обеспечена поддержка протоколов HTTP/2 и HTTP/3, а также проведена работа по упрощению API и поддержке разных бэкендов для TLS. Начало работы над новой веткой будет профинансировано фондом Sovereign, учреждённым в Германии для стимулирования развития открытой цифровой инфраструктуры и экосистем с открытым исходным кодом.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster