GNU libmicrohttpd

Zuverlässiger, sicherer und effizienter Einbau von leistungsstarken HTTP-Servern in Anwendungen

Eckdaten

Status:
Laufend
Investition
300.000,00 €
Investitionsjahr(e)
2024, 2025

GNU libmicrohttpd ist eine Open-Source-Bibliothek, die entwickelt wurde, um die Integration von hochleistungsfähigen HTTP-Serverfunktionen in verschiedene Softwareanwendungen zu erleichtern. Dies vereinfacht die Bereitstellung von Webdiensten innerhalb einer bestehenden Softwareanwendung und ermöglicht die Kommunikation zwischen verschiedenen Geräten für in unterschiedlichen Szenarien. Ursprünglich vor über 17 Jahren entwickelt, bietet libmicrohttpd Entwickler*innen eine zuverlässige und effiziente Lösung zur Einbettung von einfachen Webserver-Funktionen. Als kritische Komponente in zahlreichen Projekten, die von eingebetteten Systemen bis hin zu Content-Delivery-Netzwerken reichen, haben die Vielseitigkeit und der robuste Funktionsumfang von libmicrohttpd ihren Status als beliebte Wahl unter Entwickler*innen gefestigt.

Das libmicrohttpd-Projekt wird derzeit in erheblichem Umfang gewartet und verbessert, um seine weitere Relevanz und Zuverlässigkeit zu gewährleisten. Dazu gehören die Entwicklung einer neuen Anwendungsprogrammierschnittstelle (API), die Umstrukturierung der Codebasis zur Verbesserung der Modularität und die Erweiterung der automatisierten Testsuite zur Erhöhung der Sicherheit und Stabilität. Durch die Investition in diese Verbesserungen wird die Position von libmicrohttpd als grundlegendes Werkzeug für die Entwicklung von HTTP-Servern anerkannt und ein Beitrag zur langfristigen Nachhaltigkeit und Sicherheit des FOSS-Ökosystems geleistet.

Warum ist das wichtig?

GNU libmicrohttpd bietet ein robustes und effizientes Framework für verschiedene Anwendungen, die auch HTTP-(Web-)Seiten ausliefern. Das HTTP-Protokoll ist ein wesentlicher Bestandteil der Online-Kommunikation und erleichtert den Datenaustausch zwischen Clients und Servern. Die schlanke Implementierung und die leistungsstarken Fähigkeiten von libmicrohttpd machen es zu einem äußerst wertvollen Werkzeug für Entwickler*innen, die Webserver-Funktionalität in ihre Projekte integrieren möchten, unabhängig von Umfang und Komplexität. Ob in eingebetteten Systemen, Content-Delivery-Netzwerken oder anderen Softwareanwendungen, libmicrohttpd spielt eine zentrale Rolle bei der Ermöglichung einer zuverlässigen und effizienten Kommunikation über das Internet.

Tausende von Projekten und Unternehmen nutzen libmicrohttpd, darunter die NASA (Earth Observation Satellitendatenverteilung), Sony-Fernseher, Sicherheitskameras, medizinische Testlabors und zahlreiche Freie Software-Projekte. Um nur ein paar zu nennen: GNUnet, Kodi, GNU Taler, Retroshare, P4P Portal, Gnome Music Player Client CallHome, Open Lighting Architecture und systemd (Journal gatewayd).

Was unterstützen wir?

Der Sovereign Tech Fund gibt Verbesserungen an GNU libmicrohttpd in Auftrag, die die Sicherheit, Widerstandsfähigkeit und einfache Nutzung der Bibliothek für viele kritische Anwendungen erhöhen und sie gleichzeitig kompatibler mit den neuesten Standards und Clients machen, was zu der langfristigen Nachhaltigkeit beitragen wird. Zu den Verbesserungen gehören die Entwicklung einer neuen Anwendungsprogrammierschnittstelle (API), die Umstrukturierung der Codebasis im Hinblick auf Modularität und Wartungsfreundlichkeit sowie die Erweiterung der automatisierten Testsuite, um umfassendere und gründlichere Tests zu ermöglichen.

  1. API-Erweiterung und Verfeinerung:
    • Entwicklung und Dokumentation der microhttpd (MHD) v2 API, um alle Funktionen von MHD v1 zu umfassen und gleichzeitig die Nutzbarkeit, Sicherheit und Anpassbarkeit zu verbessern.
    • Aufteilung der API in sechs Funktionsgruppen, darunter die Verarbeitung von HTTP-Kernanfragen, HTTP-POST-Body-Parsing, WebSocket-Unterstützung, TLS-Unterstützung, HTTP-Client-Authentifizierung und Introspektion.
  2. Stärkung der Kernfunktionalität:
    • Implementierung und Test der Kernfunktionalität für die Verarbeitung von HTTP-Anfragen, einschließlich der Unterstützung verschiedener Arten von Ereignisschleifen und der Erzeugung von HTTP-Antworten.
    • Entwicklung einer Komfort-API für das inkrementelle Parsen von HTTP-POST-Daten zur Verbesserung der Sicherheit und einfachen Nutzung.
  3. Verbesserung der Protokollunterstützung:
    • Implementierung von WebSocket-Unterstützung, um moderne Webanwendungen zu unterstützen.
    • Integration und Test der TLS-Unterstützung mit Optionen für zugrunde liegende Bibliotheken und Laufzeitflexibilität.
    • Implementierung von HTTP-Authentifizierungsunterstützung für sichere Anwendungsauthentifizierungsmechanismen.
  4. API-Dokumentation und Migration:
    • Dokumentation der kompletten v2-API im microhttpd-Handbuch und Aktualisierung der Tutorials mit Beispielen.
    • Entwicklung eines Migrationsleitfadens für die Umstellung von bestehendem Code auf die neue API.
    • Evaluierung des Migrationsprozesses durch Umwandlung eines bestehenden Dienstes zur Nutzung der neuen API.
  5. Leistungsbewertung und Validierung:
    • Durchführung einer detaillierten Leistungsbewertung, bei der microhttpd v1 mit v2 verglichen wird, und Behebung aller signifikanten Regressionen.
    • Validierung der Codekompilierung auf verschiedenen Plattformen und Architekturen.
    • Ausführliche Code-Analyse und Erweiterung der Test-Suite durch automatisiertes Fuzzing.
  6. Protokollentwicklung und -integration:
    • Hinzufügen der Unterstützung für HTTP/2 zur Verbesserung der Leistung für bestimmte Anwendungsfälle.
    • Integration von HTTP/3-Unterstützung durch Nutzung der bestehenden QUIC-Transportbibliotheken für UDP-basierte Kommunikation.

More technologies

Alle Technologien