GNU projekts ir publicējis libmicrohttpd 1.0.0 bibliotēkas izdevumu, kurš atzīts par pirmo stabilo izlaišanu 16 gadu laikā kopš projekta rašanās. Bibliotēka ir uzrakstīta C valodā un piedāvā vienkāršu API, lai iebūvētu HTTP servera funkcionalitāti lietojumprogrammās. Atbalstītās platformas: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 un z/OS. Kods tiek izplatīts saskaņā ar LGPL 2.1+ licenci. Noklusēti sastādot, bibliotēka aizņem apmēram 200 KB, savukārt minimālajā būvē — 32 KB. Atkarībās tiek izmantota tikai libc, kā arī libgnutls, ja ir izvēlēta opcija atbalstīt TLS.
Bibliotēka atbalsta HTTP 1.1 protokolu, TLS, inkrementālu POST pieprasījumu apstrādi, savienojumu pieņemšanu no vairākiem tīkla portiem, pamata un digest autentifikāciju, IPv6, SHOUTcast, dažādas savienojumu daudzveidības metodes (select, poll, epoll) un daudzuzdevumu modelis (piemēram, var izmantot pavedienu pūlu vai pavedienu katram savienojumam). Lai samazinātu slogu, kas rodas konteksta maiņā starp kodolu un lietotāja telpu, sistēmas izsaukumu skaits darba procesā ir samazināts līdz minimumam. libmicrohttpd koda bāzes drošība ir apstiprināta pārbaudēs, ko veikušas Mozilla un Red Hat.
Visbiežāk pamanāmās izmaiņas salīdzinājumā ar iepriekšējo izdevumu:
- Tika pārstrādāts un pilnībā pielāgots RFC 9110 un 9112 prasībām kods klientu pieprasījumu parsēšanai. Tika nodrošināti stingra un mīksta specifikāciju ievērošanas režīmi, lai līdzsvarotu savietojamību un augstāku drošību.
- Tika pārstrādāta digest autentifikācijas realizācija, kurā ievērojami paplašināta atbalsta iespēju saskaņā ar RFC 7617. Tajā skaitā, tika nodrošināta SHA-512, userhash un username atbalsts paplašinātajā notācijā. Tāpat tika saglabāts vecā RFC 2069 atbalsts un iespēja izmantot MD5 un SHA-256 hash.
- Uzlabota darbība daudzuzdevumu vidēs un pie zvanīšanas režīmiem.
- Tika pārstrādāta basic autentifikācijas realizācija, kurai ABI piedāvā papildu funkcijas.
- Tika pārstrādāts kods GnuTLS inicializācijai. Tika pievienota iespēja izmantot gan parasto, gan libmicrohttpd konkrēto GnuTLS sistēmas konfigurāciju, kā arī atbalsts atsevišķu GnuTLS sistēmas konfigurācijas iestatījumu pārrakstīšanai.
Tuvumā plānots izstrādāt libmicrohttpd 2 atzarojumu, kurā tiks nodrošināta atbalsts HTTP/2 un HTTP/3 protokoliem, kā arī veikta darba optimizācija API un dažādu TLS aizmugures sistēmu atbalstam. Jaunā atzarojuma darbības uzsākšana tiks finansēta ar Sovereign fondu, kas izveidots Vācijā, lai veicinātu attīstību atvērtajai digitālajai infrastruktūrai un atvērtā koda ekosistēmām.
Avots: opennet.lv
