Web Analytics

mamba

⭐ 7413 stars English by mamba-org

Mamba: The Fast Cross-Platform Package Manager

mamba header image

part of mamba-org
Package Manager mamba Package Server quetz

mamba

Build Status Join the Gitter Chat docs Gurubase

mamba is a reimplementation of the conda package manager in C++.

At the same time, mamba utilizes the same command line parser, package installation and deinstallation code, and transaction verification routines as conda to stay as compatible as possible.

mamba is part of the conda-forge ecosystem, which also consists of quetz, an open source conda package server.

You can read our announcement blog post.

micromamba

micromamba is the statically linked version of mamba.

It can be installed as a standalone executable without any dependencies, making it a perfect fit for CI/CD pipelines and containerized environments.

See the documentation on micromamba for details.

mamba v.s. micromamba

mamba should be preferred when:

micromamba should be preferred when:

Installation

Please refer to the mamba and micromamba installation guides in the documentation.

Additional features in Mamba and Micromamba

mamba and micromamba come with features on top of stock conda.

repoquery

To efficiently query repositories and query package dependencies you can use mamba repoquery or micromamba repoquery.

See the repoquery documentation for details.

Installing lock files

micromamba can be used to install lock files generated by conda-lock without having to install conda-lock.

Simply invoke micromamba create with the -f option, providing an environment lockfile whose name ends with -lock.yml or -lock.yaml; for instance:

micromamba create -n my-env -f conda-lock.yml

setup-micromamba (setup-miniconda replacement)

setup-micromamba is a replacement for setup-miniconda that uses micromamba.

It can significantly reduce your CI setup time by:

Differences with conda

While mamba and micromamba are generally a drop-in replacement for conda there are some differences:

This can lead to slight differences in the output of conda env export and mamba env export.

Development installation

Please refer to the instructions given by the official documentation.

API and ABI stability

The Mamba project uses semantic versioning of the form MAJOR.MINOR.PATCH. While we try to keep things stable for users, we also need to make breaking changes to improve Mamba and reduce technical debt. Future versions of Mamba may give stronger guarantees.

libmamba (C++)

We are not aware of consumers of the C++ API, so we give ourselves room for improvements. For libmamba, the term _backward compatible_ is understood as follows:

your code with the updated headers. The observed behavior will be the same, except for bugs (disappearing, hopefully) and performance. version code, but you won't need to change your code, just re-build it. This applies as long as you did not use any declaration understood to be private, for instance in the detail sub-namespaces. The observed behavior will be the same, except for bugs (disappearing, hopefully) and performance. When declarations are deprecated but not removed and still functional, we consider it also backward compatible, as only the observed behavior during compilation changes.

With this in mind, libmamba offers the following guarantees:

They can break API elsewhere and ABI anywhere;

libmambapy (Python)

For libmambapy, the term _API backward compatible_ implies that your Python code will work the same for a newer version of libmambapy as long as you did not use any declaration understood to be private, for instance accessed with a name starting with an _. The observed behavior will be the same, except for bugs (disappearing, hopefully) and performance. When declarations are deprecated but not removed and still functional, we consider it also backward compatible, as the behavior is only observable when activating Python DeprecationWarning, which is usually only activated in development.

With this in mind, libmambapy offers the following guarantees:

mamba and micromamba (executables)

For executables, the term _backward compatible_ applies to programmable inputs and outputs and means that your code (including shell scripts) will work with newer versions of the executable without modifications. Programmable inputs/outputs include executable name, command line arguments, configuration files, environment variables, JSON command line outputs, and files created. It _excludes_ human-readable output and error messages, and thus deprecation warnings written in the human-readable output.

With this in mind, mamba and micromamba offer the following guarantees:

Support us

Only mamba and micromamba 2.0 and later are supported and are actively developed.

The 1.x branch is only maintained for addressing security issues such as CVEs.

For questions, you can also join us on the QuantStack Chat or on the Conda channel (note that this project is not officially affiliated with conda or Anaconda Inc.).

License

We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.

This software is licensed under the BSD-3-Clause license. See the LICENSE file for details.


Biweekly Dev Meeting

We have videoconference meetings every two weeks where we discuss what we have been working on and get feedback from one another.

Anyone is welcome to attend, if they would like to discuss a topic or just listen in.

--- Tranlated By Open Ai Tx | Last indexed: 2025-06-08 ---