Проектот GNU го издаде libmicrohttpd 1.0.0, што е првото стабилно издание во 16-годишната историја на проектот. Библиотеката е напишана во C и обезбедува едноставно API за вградување на функционалноста на HTTP серверот во апликациите. Поддржаните платформи вклучуваат: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 и z/OS. Кодот е дистрибуиран под лиценцата LGPL 2.1+. Библиотеката е приближно 200 KB во стандардниот режим на градење и 32 KB во минималниот режим на градење. Зависностите вклучуваат само libc, а libgnutls е опционално изграден со TLS поддршка.
Библиотеката поддржува HTTP 1.1 протокол, TLS, постепена обработка на POST барања, прифаќање конекции од неколку мрежни порти, основна и дигест автентикација, IPv6, SHOUTcast, различни методи за мултиплексирање на поврзување (изберете, анкета, епол) и модели на повеќенишки (на пример, вие може да користи базен со навој или конец по врска). За да се намалат трошоците што настануваат при префрлување контекст помеѓу кернелот и корисничкиот простор, бројот на системски повици за време на работата се сведува на минимум. Безбедноста на базата на кодови libmicrohttpd е потврдена со ревизии спроведени од Mozilla и Red Hat.
Најзабележителни промени во однос на последното издание:
- Кодот за парсирање на барањата на клиентите е препишан и целосно усогласен со барањата на RFC 9110 и 9112. Обезбедени се строги и меки режими на усогласеност со спецификациите за да се балансира помеѓу компатибилноста или поголемата безбедност.
- Имплементацијата на автентикацијата на дигестот е преработена, што значително ја проширува поддршката за функциите присутни во RFC 7617. Ова вклучува поддршка за SHA-512, кориснички хаш и корисничко име во проширена нотација. Задржана е и поддршката за стариот RFC 2069 и можноста за користење хашови MD5 и SHA-256.
- Подобрени перформанси во опкружувања со повеќе нишки и режими за гласање со штекер.
- Имплементацијата на основната автентикација е преработена, за што се нудат дополнителни функции во ABI.
- Преработен код за иницијализација на GnuTLS. Додадена е можност за користење и стандардна и libmicrohttpd-специфична конфигурација на системот GnuTLS, како и поддршка за надминување на поединечни поставки за конфигурација на системот GnuTLS.
Во иднина се планира да се развие гранката libmicrohttpd 2, која ќе обезбедува поддршка за протоколите HTTP/2 и HTTP/3, како и работа на поедноставување на API и поддршка на различни задни за TLS. Почетокот на работата на новата филијала ќе биде финансиран од Фондацијата Суверена, основана во Германија за да го стимулира развојот на отворена дигитална инфраструктура и екосистеми со отворен код.
Извор: opennet.ru
