Mamba
Key facts
- Status:
- Current
- Investment Amount
- €349,875.00
- Investment Year(s)
- 2023, 2024
The Mamba project, a widely-utilized cross-platform package manager for numerous programming languages including Python, R, C/C++, and more, evolved out of the Conda package manager. Originating from the needs of the conda-forge project, a thriving package distribution platform, Mamba provides a robust and reliable solution for software installation and management. In addition to its efficiency, Mamba also provides Micromamba, a single, statically-linked executable file that enables hassle-free setup of Python or other toolchains without requiring super-user permissions. This simplifies integration into developers' environments.
With a broad user base encompassing large corporations, universities, and scientists, Mamba plays a pivotal role in simplifying software development and deployment processes across various sectors. Through continuous improvements and community engagement, the project remains committed to enhancing the reliability and efficiency of package management, while fostering widespread adoption and support within the software development community.
Why is this important?
Packaging software is still a highly challenging problem. Package managers need to manage dependencies, ensure platform compatibility, control versions, address security concerns, manage build and distribution pipelines, and deliver a user-friendly experience. The Mamba and conda-forge projects are working together to build a broad software distribution for different operating systems.
conda-forge, the home of the Mamba project, contains thousands of software packages for many different programming languages, including many used in scientific research. Widely known for Python and data science, conda-forge is also used in biology, medicine, robotics, and other fields. Besides Python language packages, it contains R, Perl, Fortran, C/C++, Rust, Go, Ruby and more packages other languages. Mamba and conda-forge support all major operating systems: Linux (x64, AArch64 and ppc64le), macOS (x64 and ARM64), and Windows (x64; ARM64 in progress).
The conda-forge repository has monthly downloads of more than 300 million packages. It is used in conjunction with Mamba by many large companies as well as universities, small businesses, and individual scientists.
Mamba and Micromamba are used in:
- Github Actions (setup-micromamba and provision-with-micromamba)
- Docker (micromamba-docker with over 1 million pulls)
- Tools, such as:
- snakemake - highly successful bioinformatics tool for reproducible science
- readthedocs.org to build docs-environments on the most popular open source documentation hosting platform
- MyBinder.org, a very popular open-infrastructure free Jupyter notebook hosting (and execution) solution
- conda-libmamba-solver, integration of libmamba back into conda
- rhumba, an R-based installer using libmamba
- boa, a build-tool based on mamba
- Several other package managers such as pacman, Homebrew, and MacPorts
What are we funding?
The Sovereign Tech Fund is commissioning work to enhance the Mamba project and the conda-forge ecosystem, including the transition of libsolv to Rust for improved efficiency, the development of a new build format and tool to enhance package creation, the implementation of reproducible builds for consistent package generation, and extensive community outreach and education efforts to promote adoption and support of these advancements.
- Port the libsolv package resolver to Rust for improved maintainability and versatility across package management systems.
- Develop a new recipe format and build tool for conda-forge to enhance speed and efficiency of package building.
- The development of a new build-tool (rattler-build), written in Rust and making use of the new recipe format and the new resolver. The integration of rattler-build into conda-forge.
- Implement reproducible builds for conda-forge to ensure consistency across different machines and environments.
- Conduct community outreach and education through documentation, conference participation, and engagement to promote adoption and support for new tools and formats