Première version stable de la bibliothèque GNU libmicrohttpd

Le projet GNU a publié la version 1.0.0 de la bibliothèque libmicrohttpd, qui est marquée comme le premier lancement stable en 16 ans d'existence du projet. La bibliothèque est écrite en C et propose une API simple pour intégrer des fonctionnalités de serveur HTTP dans des applications. Parmi les plateformes prises en charge : GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 et z/OS. Le code est distribué sous la licence LGPL 2.1+. Lors de la compilation par défaut, la bibliothèque occupe environ 200 Ko, et en mode de compilation minimal — 32 Ko. Elle utilise uniquement libc dans ses dépendances, ainsi que libgnutls lors d'une compilation optionnelle avec prise en charge de TLS.

La bibliothèque prend en charge le protocole HTTP 1.1, TLS, le traitement incrémentiel des requêtes POST, la réception de connexions sur plusieurs ports réseau, l'authentification basic et digest, IPv6, SHOUTcast, divers méthodes de multiplexage des connexions (select, poll, epoll) et des modèles de multithreading (par exemple, on peut utiliser un pool de threads ou un thread par connexion). Pour réduire les frais généraux dus au changement de contexte entre le noyau et l'espace utilisateur, le nombre d'appels système en cours d'exécution est minimisé. La sécurité de la base de code de libmicrohttpd est confirmée par des audits réalisés par les entreprises Mozilla et Red Hat.

Les changements les plus notables par rapport à la version précédente :

  • Le code pour l'analyse des requêtes des clients a été réécrit et mis en conformité totale avec les exigences des RFC 9110 et 9112. Des modes de conformité stricte et souple des spécifications ont été fournis pour équilibrer compatibilité ou sécurité accrue.
  • La mise en œuvre de l'authentification digest a été retravaillée, avec un soutien considérablement élargi pour les fonctionnalités présentes dans le RFC 7617. Cela inclut la prise en charge de SHA-512, userhash et username en notation étendue. Le support de l'ancien RFC 2069 et la possibilité d'utiliser des hachages MD5 et SHA-256 ont également été conservés.
  • Amélioration de la performance dans des environnements multithreads et lors des modes de polling des sockets.
  • La mise en œuvre de l'authentification basic a été retravaillée, pour laquelle des fonctions supplémentaires sont proposées dans l'ABI.
  • Le code pour l'initialisation de GnuTLS a été révisé. La possibilité d'utiliser la configuration systémique par défaut et spécifique à libmicrohttpd pour GnuTLS a été ajoutée, ainsi que le support pour la redéfinition de certains réglages de la configuration systémique de GnuTLS.

Il est prévu de développer la branche libmicrohttpd 2, qui assurera le support des protocoles HTTP/2 et HTTP/3, ainsi que de simplifier l'API et de supporter différents backends pour TLS. Le début des travaux sur cette nouvelle branche sera financé par le fonds Sovereign, établi en Allemagne pour stimuler le développement d'infrastructures numériques ouvertes et d'écosystèmes à code source ouvert.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster