GNU-projektet har publicerat version 1.0.0 av biblioteket libmicrohttpd, som markerar den första stabila utgÄvan pÄ 16 Är. Biblioteket Àr skrivet i C och erbjuder ett enkelt API för att integrera HTTP-servrar i applikationer. Bland de stödjande plattformarna finns: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 och z/OS. Koden distribueras under LGPL 2.1+. Vid standardkompilering upptar biblioteket cirka 200 KB, och i minimal kompilering betyder det 32 KB. Endast libc anvÀnds som beroende, samt libgnutls vid valfri kompilering med TLS-stöd.
Biblioteket stödjer protokollen HTTP 1.1, TLS, inkrementell hantering av POST-förfrÄgningar, mottagning av anslutningar frÄn flera nÀtverksportar, basic- och digest-autentisering, IPv6, SHOUTcast, olika metoder för multiplexering av anslutningar (select, poll, epoll) samt trÄdmodeller (till exempel kan en trÄdpool eller en trÄd per anslutning anvÀndas). För att minska overhead vid kontextbyten mellan kÀrnan och anvÀndarutrymmet har antalet systemanrop under drift minimerats. SÀkerheten i kodbasen för libmicrohttpd har bekrÀftats av revisioner utförda av Mozilla och Red Hat.
De mest anmÀrkningsvÀrda förÀndringarna jÀmfört med föregÄende version:
- Koden för parsning av klientförfrÄgningar har skrivits om och anpassats helt i enlighet med kraven i RFC 9110 och 9112. Strikta och mjuka lÀgen för att följa specifikationerna har implementerats för att balansera mellan kompatibilitet och högre sÀkerhet.
- Implementeringen av digest-autentisering har omarbetats, vilket kraftigt har utökat stödet för funktionerna i RFC 7617. Stöd för SHA-512, userhash och anvÀndarnamn i utvidgad notation har inkluderats. Stöd för den gamla RFC 2069 samt möjlighet att anvÀnda MD5- och SHA-256-hashar har ocksÄ bevarats.
- Prestandan har förbÀttrats i flertrÄdade miljöer och vid socket-polllÀgen.
- Implementeringen av basic-autentisering har omarbetats, och ytterligare funktioner har föreslagits i ABI.
- Koden för att initiera GnuTLS har omarbetats. Möjligheten att anvÀnda bÄde standard- och libmicrohttpd-specifik systemkonfiguration för GnuTLS har lagts till, liksom stöd för att ÄsidosÀtta vissa instÀllningar i systemkonfigurationen för GnuTLS.
I framtiden planeras utvecklingen av grenen libmicrohttpd 2, dÀr stöd för protokollen HTTP/2 och HTTP/3 kommer att sÀkerstÀllas, samt arbete för att förenkla API och stödja olika backend-lösningar för TLS. Arbetet med den nya grenen kommer att finansieras av fonden Sovereign, som inrÀttades i Tyskland för att stimulera utvecklingen av öppen digital infrastruktur och ekosystem med öppen kÀllkod.
KĂ€lla: opennet.ru
