Home

Softwarebibliotheken

Softwarebibliotheken sind Sammlungen von vorgefertigten Funktionen, Klassen oder Modulen, die in einer Anwendung verwendet werden können. Sie kapseln häufig wiederkehrende Aufgaben wie Dateizugriff, Datenverarbeitung oder Netzwerkkommunikation, sodass Entwickler ihren Code aufbauen können, ohne Grundfunktionen neu schreiben zu müssen.

Im Gegensatz zu Frameworks stehen Bibliotheken im Dienst der auszuführenden Anwendung; der Entwickler steuert den Programmfluss

Bibliotheken werden oft als Binärdateien oder Quellcode bereitgestellt und über Paketmanager, Build-Systeme oder direkte Einbindung in

Die Versionierung von Bibliotheken erfolgt häufig nach SemVer, um Kompatibilität vorherzusagen. Wichtige Aspekte sind API- und

Lizenzen regeln Nutzung, Weitergabe und Modifikationen der Bibliothek und beeinflussen kommerzielle Projekte. Sicherheitsaspekte betreffen regelmäßige Updates,

Beispiele für bedeutende Softwarebibliotheken sind die Standardbibliotheken von Programmiersprachen, Boost (C++), NumPy (Python), React (JavaScript) sowie

Historisch entstanden Bibliotheken aus dem Bedarf an Code-Wiederverwendung und haben sich zu umfassenden Ökosystemen mit Paketmanagern,

und
ruft
Bibliotheksfunktionen
nach
Bedarf
auf.
Frameworks
liefern
dagegen
oft
einen
vorgegebenen
Architekturstil
und
rufen
eigenen
Code
der
Anwendung
auf.
das
Projekt
installiert.
Sie
können
Abhängigkeiten
zu
anderen
Bibliotheken
mitbringen
und
müssen
kompatibel
zur
Zielanwendung
sein.
ABI-Kompatibilität,
Semantikänderungen
und
das
Verhalten
bei
Updates.
In
vielen
Sprachen
gibt
es
Tools
zur
Abhängigkeitsauflösung,
Konfliktvermeidung
und
Isolierung.
Risiken
in
der
Lieferkette
(Supply-Chain-Risiken)
und
das
Scannen
von
Abhängigkeiten
nach
Sicherheitslücken.
OpenSSL.
Bibliotheken
ermöglichen
schnelle
Entwicklung,
bessere
Wiederverwendung,
Portabilität
und
wartbaren
Code,
können
aber
zu
Abhängigkeitskonflikten
und
erhöhter
Build-Komplexität
führen.
Repositories
und
automatisierter
Abhängigkeitsverwaltung
entwickelt.
Sie
bilden
einen
zentralen
Baustein
moderner
Softwareentwicklung.