A GNU projekt kiadta a libmicrohttpd 1.0.0 könyvtár verzióját, amelyet a projekt 16 éves történetében az első stabil kiadásként jelöltek meg. A könyvtár C nyelven készült, és egyszerű API-t kínál HTTP-szerver funkciók alkalmazásokba való beépítéséhez. Támogatott platformok közé tartozik: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 és z/OS. A kód LGPL 2.1+ licenc alatt érhető el. Alapértelmezett összeállításnál a könyvtár mérete körülbelül 200 KB, míg a minimális összeállítási mód körülbelül 32 KB. Az egyetlen függőség a libc, valamint választható TLS támogatás esetén a libgnutls.
A könyvtár támogatja a HTTP 1.1 protokollt, a TLS-t, a POST-kérések inkrementális feldolgozását, kapcsolatok fogadását több hálózati porton, alapszintű és digest-hitelesítést, IPv6-ot, SHOUTcast-ot, különböző kapcsolatszorítási módszereket (select, poll, epoll) és több szálú modelleket (például szál- vagy kapcsolatpult használható). A kernel és a felhasználói tér közötti kontextusváltás költségeinek csökkentése érdekében a rendszerv calls minimálisra lett csökkentve a működés során. A libmicrohttpd kódalap biztonságát a Mozilla és a Red Hat auditjai igazolják.
A legfontosabb változások az előző kiadáshoz képest:
- A klienskérések elemzésének kódja újraírásra került, és teljesen megfelel az RFC 9110 és 9112 követelményeinek. Szigorú és laza módban történő megfelelés is elérhető a kompatibilitás és a magasabb biztonság közötti egyensúlyozás érdekében.
- Átdolgozták a digest-hitelesítés megvalósítását, jelentősen kibővítve a RFC 7617-ben szereplő funkciók támogatását. Támogatás került a SHA-512, userhash és felhasználónév kiterjesztett notációban. Különösen megmaradt a régi RFC 2069 támogatása és a MD5, valamint SHA-256 hash-ek használatának lehetősége.
- Javították a teljesítményt több szálú környezetekben és a socket polling üzemmódok esetén.
- A basic-hitelesítés megvalósítása átdolgozásra került, amelyhez további funkciókat ajánlottak az ABI-ban.
- A GnuTLS inicializálásához szükséges kód át lett írva. Lehetőség nyílik mind a tipikus, mind a libmicrohttpd-specifikus GnuTLS rendszerconfig használatára, valamint egyes GnuTLS rendszerbeállítások felülbírálásának támogatására.
A jövőben tervezzük a libmicrohttpd 2 ág fejlesztését, amely biztosítja a HTTP/2 és HTTP/3 protokollok támogatását, valamint a API egyszerűsítésére és különböző TLS backendek támogatására irányuló munkát. Az új ág fejlesztésének megkezdését a Nemzeti Alap finanszírozza, amelyet Németországban alapítottak az nyílt digitális infrastruktúra és nyílt forráskódú ökoszisztémák fejlődésének ösztönzésére.
Forrás: opennet.ru
