Die erste stabile Version der GNU-Bibliothek libmicrohttpd.

Das GNU-Projekt hat die Bibliothek libmicrohttpd 1.0.0 veröffentlicht, die als erster stabiler Release seit 16 Jahren in der Geschichte des Projekts gilt. Die Bibliothek ist in C geschrieben und bietet eine einfache API für die Integration von HTTP-Serverfunktionen in Anwendungen. Unterstützte Plattformen sind: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 und z/OS. Der Code wird unter der LGPL 2.1+ Lizenz verteilt. Bei der Standardkompilierung nimmt die Bibliothek ungefähr 200 KB ein, im Minimalmodus sind es 32 KB. Die Abhängigkeiten beinhalten nur libc sowie libgnutls für optionale Kompilierungen mit TLS-Unterstützung.

Die Bibliothek unterstützt das HTTP 1.1-Protokoll, TLS, inkrementelle Verarbeitung von POST-Anfragen, Annahme von Verbindungen an mehreren Netzwerkports, Basic- und Digest-Authentifizierung, IPv6, SHOUTcast, verschiedene Methoden zur Multiplexierung von Verbindungen (select, poll, epoll) und Multithreading-Modelle (zum Beispiel kann ein Thread-Pool oder ein Thread pro Verbindung verwendet werden). Um den Overhead zu verringern, der beim Kontextwechsel zwischen Kernel und Benutzerspeicher auftritt, wurde die Anzahl der Systemaufrufe während der Ausführung auf ein Minimum reduziert. Die Sicherheit des libmicrohttpd-Codes wurde durch Audits von Mozilla und Red Hat bestätigt.

Die auffälligsten Änderungen im Vergleich zur vorherigen Version:

  • Der Code für das Parsing von Client-Anfragen wurde neu geschrieben und vollständig an die Anforderungen der RFC 9110 und 9112 angepasst. Es wurden strikte und lockere Modusbedingungen für die Einhaltung der Spezifikationen bereitgestellt, um zwischen Kompatibilität und höherer Sicherheit abzuwägen.
  • Die Implementierung der Digest-Authentifizierung wurde überarbeitet, wobei die Unterstützung der in RFC 7617 enthaltenen Funktionen erheblich erweitert wurde. Dazu gehört die Unterstützung von SHA-512, userhash und username in erweiterter Notation. Zudem bleibt die Unterstützung des alten RFC 2069 und die Verwendung von MD5- und SHA-256-Hashes erhalten.
  • Die Leistung in Multithread-Umgebungen und bei Socket-Polling-Methoden wurde verbessert.
  • Die Implementierung der Basic-Authentifizierung wurde überarbeitet, für die im ABI zusätzliche Funktionen angeboten werden.
  • Der Code für die Initialisierung von GnuTLS wurde überarbeitet. Es wurde die Möglichkeit hinzugefügt, sowohl eine generische als auch eine spezifische GnuTLS-Systemkonfiguration zu verwenden, sowie die Unterstützung für die Überschreibung einzelner Einstellungen der GnuTLS-Systemkonfiguration.

In Zukunft ist die Entwicklung der Version libmicrohttpd 2 geplant, die die Unterstützung der Protokolle HTTP/2 und HTTP/3 gewährleisten wird. Zudem wird an der Vereinfachung der API und der Unterstützung verschiedener Backends für TLS gearbeitet. Der Beginn der Arbeiten an der neuen Version wird vom Sovereign-Fonds finanziert, der in Deutschland gegründet wurde, um die Entwicklung offener digitaler Infrastrukturen und Ökosysteme mit offenem Quellcode zu fördern.

Quelle: opennet.ru

60GB SSD 8Gb DDR4