Mamba

Sicheres Package-Management im wissenschaftlichen Bereich und weit darüber hinaus, auf alle Betriebssysteme

Eckdaten

Status:
Laufend
Investition
349.875,00 €
Investitionsjahr(e)
2023, 2024

Das Mamba-Projekt, ein weit verbreitetes plattformübergreifendes Paketverwaltungssystem (Paketmanager) für zahlreiche Programmiersprachen wie Python, R, C/C++ und andere, hat sich aus der Conda-Paketverwaltung entwickelt. Mamba entstand aus den Bedürfnissen des conda-forge-Projekts, einer sehr erfolgreichen Plattform für die Bereitstellung von Softwarepaketen, und bietet eine robuste und zuverlässige Lösung für die Installation und Verwaltung von Software. Zusätzlich zu der Effizienz bietet Mamba auch Micromamba an, eine einzelne, statisch verknüpfte ausführbare Datei, die eine problemlose Einrichtung von Python oder anderen Toolchains ermöglicht, ohne dass Superuser-Rechte erforderlich sind. Dies vereinfacht die Integration in die Umgebungen der Entwickler*innen.

Mit einer breiten Nutzer*innen-Basis, die große Unternehmen, Universitäten und Wissenschaftler umfasst, spielt Mamba eine zentrale Rolle bei der Vereinfachung von Software-Entwicklungs- und Implementierungsprozessen in verschiedenen Bereichen. Durch kontinuierliche Verbesserungen und die Beteiligung der Community ist das Projekt entschlossen, die Zuverlässigkeit und Effizienz der Paketverwaltung zu erhöhen und gleichzeitig eine breite Akzeptanz und Unterstützung innerhalb der Community von Software-Entwickler*innen zu fördern.


Warum ist das wichtig?

Das Zusammenstellen von Softwarepaketen ist nach wie vor ein äußerst schwieriges Problem. Paketmanager müssen Abhängigkeiten verwalten, Plattformkompatibilität sicherstellen, Versionen prüfen, Sicherheitsaspekte berücksichtigen, Build- und Distributions-Pipelines verwalten und eine Nutzungsfreundlichkeit gewährleisten. Die Projekte Mamba und conda-forge arbeiten zusammen, um eine breite Software-Distribution für verschiedene Betriebssysteme aufzubauen.

conda-forge, wo das Mamba-Projekt verankert ist, enthält Tausende von Softwarepaketen für viele verschiedene Programmiersprachen, darunter viele, die in der wissenschaftlichen Forschung verwendet werden. Weithin bekannt für Python und Datenwissenschaft, wird conda-forge auch in der Biologie, Medizin, Robotik und anderen Bereichen eingesetzt. Neben Python-Paketen enthält es auch Pakete für R, Ruby, Perl, Fortran, C/C++, Rust, Go und weitere Programmiersprachen. Mamba und conda-forge unterstützen alle wichtigen Betriebssysteme: Linux (x64, AArch64 und ppc64le), macOS (x64 und ARM64), und Windows (x64; ARM64 in Arbeit).

Das conda-forge Software-Repository verzeichnet monatliche Downloads von mehr als 300 Millionen Paketen. Sie wird zusammen mit Mamba von vielen großen Unternehmen sowie von Universitäten, kleinen Unternehmen und einzelnen Wissenschaftler*innen genutzt.

Mamba und Micromamba werden verwendet in:

  • Github-Aktionen (setup-micromamba und provision-with-micromamba)
  • Docker (micromamba-docker mit über 1 Million Pulls)
  • Tools, wie z.B.:
    • snakemake - sehr erfolgreiches Bioinformatik-Tool für reproduzierbare Wissenschaft
    • readthedocs.org zur Erstellung von Dokumentationsumgebungen auf der beliebtesten Open-Source-Plattform für Dokumentationshosting
    • MyBinder.org, eine sehr beliebte Open-Infrastructure-Lösung für das Hosting (und die Ausführung) von Jupyter-Notizbüchern
    • conda-libmamba-solver, Integration von libmamba zurück in conda
    • rhumba, ein R-basiertes Installationsprogramm, das libmamba verwendet
    • boa, ein auf mamba basierendes Build-Werkzeug
  • weitere Paketmanager wie pacman, Homebrew und MacPorts

Was unterstützen wir?

Der Sovereign Tech Fund gibt Arbeiten zur Verbesserung des Mamba-Projekts und des conda-forge-Ökosystems in Auftrag, darunter die Umstellung von libsolv auf Rust zur Verbesserung der Effizienz, die Entwicklung eines neuen Build-Formats und eines Tools zur Verbesserung der Paketerstellung, die Implementierung reproduzierbarer Builds für eine konsistente Paketerstellung sowie umfangreiche Bemühungen um die Communitys, um die Verbreitung und Unterstützung dieser Neuerungen zu fördern.

  • Portierung des libsolv-Paketauflösers nach Rust, um die Wartbarkeit und Vielseitigkeit von Paketverwaltungssystemen zu verbessern.
  • Entwicklung eines neuen Rezeptformats und Build-Tools für conda-forge, um die Geschwindigkeit und Effizienz der Paketerstellung zu erhöhen.
  • Die Entwicklung eines neuen Build-Tools (rattler-build), geschrieben in Rust und unter Verwendung des neuen Rezeptformats und des neuen Resolvers. Die Integration von rattler-build in conda-forge.
  • Implementierung reproduzierbarer Builds für conda-forge, um Einheitlichkeit über verschiedene Maschinen und Umgebungen hinweg zu gewährleisten.
  • Communitys durch Dokumentation, Konferenzteilnahme und Engagement ansprechen und aufklären, um die Verwendung und Unterstützung der neuen Tools und Formate zu fördern

More technologies

Alle Technologien