U prugettu GNU hà publicatu libmicrohttpd 1.0.0, chì marca a prima versione stabile in i 16 anni di storia di u prugettu. A biblioteca hè scritta in C è furnisce una API simplice per integrà a funzionalità di u servitore HTTP in l'applicazioni. E piattaforme supportate includenu: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 и z/OS. Код распространяется под лицензией LGPL 2.1+. При сборке по умолчанию библиотека занимает около 200 КБ, а в минимальном режиме сборки — 32 КБ. В зависимостях используется только libc, а также libgnutls при опциональной сборке с поддержкой TLS.
A libreria supporta u protocolu HTTP 1.1, TLS, u processamentu incrementale di e dumande POST, accettà cunnessione da parechji porti di rete, autentificazione basica è digest, IPv6, SHOUTcast, diversi metudi di multiplexing di cunnessione (select, poll, epoll) è mudelli multithreading (per esempiu, voi pò aduprà un pool di filu o filu per cunnessione). Per riduce l'overhead incurred when context switching between the kernel and user space, u nùmeru di chjama di u sistema durante l'operazione hè mantinutu à u minimu. A sicurità di a basa di codice libmicrohttpd hè stata cunfirmata da auditi realizati da Mozilla è Red Hat.
I cambiamenti più notevuli cumparatu cù l'ultima versione:
- U codice per l'analisi di e richieste di i clienti hè statu riscritto è purtatu in piena conformità cù i requisiti di RFC 9110 è 9112. I modi di rispettu di specificazioni stretti è morbidi sò furniti per equilibriu trà a cumpatibilità o a più alta sicurezza.
- L'implementazione di l'autentificazione di digest hè stata riformulata, chì espansione significativamente u supportu per e funziunalità prisenti in RFC 7617. Questu include supportu per SHA-512, userhash è username in notation estesa. U supportu per l'antica RFC 2069 è a capacità di utilizà l'hash MD5 è SHA-256 sò ancu conservati.
- Rendimentu migliuratu in ambienti multi-threaded è modi di polling socket.
- L'implementazione di l'autentificazione basica hè stata riformulata, per quale funzioni supplementari sò offerte in l'ABI.
- Rielaboratu u codice di inizializazione GnuTLS. Aggiunta a capacità d'utilizà a cunfigurazione di u sistema GnuTLS standard è libmicrohttpd-specificu, è ancu u supportu per annullà i paràmetri di cunfigurazione di u sistema GnuTLS individuale.
In u futuru, hè previstu di sviluppà a branca libmicrohttpd 2, chì furnisce u supportu per i protokolli HTTP / 2 è HTTP / 3, è ancu di travaglià per simplificà l'API è sustene diversi backends per TLS. L'iniziu di u travagliu nantu à u novu ramu serà finanziatu da a Fundazione Sovereign, stabilita in Germania per stimulà u sviluppu di l'infrastruttura digitale aperta è l'ecosistema open-source.
Source: opennet.ru
