Първото стабилно издание на библиотеката GNU libmicrohttpd

Проект GNU публикува версия на библиотеката libmicrohttpd 1.0.0, която е отбелязана като първия стабилен релиз за 16 години от съществуването на проекта. Библиотеката е написана на C и предоставя прост 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, учреден в Германия за насърчаване на развитието на отворена цифрова инфраструктура и екосистеми с отворен код.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster