Projekt GNU objavio je izdanja biblioteke libmicrohttpd 1.0.0, koje se označava kao prvo stabilno izdanje nakon 16 godina postojanja projekta. Biblioteka je napisana na jeziku C i nudi jednostavni API za ugrađivanje funkcionalnosti HTTP servera u aplikacije. Među podržanim platformama su: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 i z/OS. Kod je distribuiran pod licencom LGPL 2.1+. Prilikom kompilacije, biblioteka prema zadanim postavkama zauzima oko 200 KB, dok u minimalnom režimu kompilacije zauzima 32 KB. U zavisnostima se koristi samo libc, a takođe i libgnutls prilikom opcionalne kompilacije sa podrškom za TLS.
Biblioteka podržava protokol HTTP 1.1, TLS, inkrementalnu obradu POST zahteva, prihvatanje veza sa više mrežnih portova, basic i digest autentifikaciju, IPv6, SHOUTcast, razne metode multiplexiranja veza (select, poll, epoll) i modele višestrukog izvršavanja (npr. može se koristiti pool niti ili nit po vezi). Kako bi se smanjili troškovi povezani sa prebacivanjem konteksta između jezgra i prostora korisnika, broj sistemskih poziva tijekom rada smanjen je na minimum. Bezbednost kodeksa libmicrohttpd potvrđena je auditima koje su sprovele kompanije Mozilla i Red Hat.
Najistaknutije promene u odnosu na prethodno izdanje:
- Kod za obradu zahteva klijenata potpuno je napisan ispočetka i doveden u skladu sa zahtevima RFC 9110 i 9112. Obezbeđeni su režimi stroge i meke usklađenosti sa specifikacijama za ravnotežu između kompatibilnosti i veće bezbednosti.
- Preuređena je implementacija digest autentifikacije, koja je značajno proširila podršku funkcionalnostima prisutnim u RFC 7617. Uključena je podrška za SHA-512, userhash i username u proširenoj notaciji. Takođe je zadržana podrška za stariji RFC 2069 i mogućnost korišćenja MD5 i SHA-256 hešova.
- Poboljšan je rad u višestrukim okruženjima i u režimima polinga soketa.
- Preuređena je implementacija basic autentifikacije, za koju su u ABI predložene dodatne funkcije.
- Kod za inicijalizaciju GnuTLS je preuređen. Dodana je mogućnost korišćenja kako tipične, tako i specifične za libmicrohttpd sistemske konfiguracije GnuTLS, kao i podrška za prepisivanje pojedinačnih podešavanja sistemske konfiguracije GnuTLS.
U budućnosti je planirano raditi na razvoju grane libmicrohttpd 2, u kojoj će biti osigurana podrška za protokole HTTP/2 i HTTP/3, kao i pojednostavljivanje API-ja i podrška za različite backendove za TLS. Početak rada na novoj grani bit će financiran od strane fonda Sovereign, osnovanog u Njemačkoj za poticanje razvoja otvorene digitalne infrastrukture i ekosustava s otvorenim kodom.
Izvor: opennet.ru
