Top Related Projects
Quick Overview
Mamba is a fast, cross-platform package manager for conda environments. It's designed as a drop-in replacement for conda, offering significantly improved performance and parallel downloads while maintaining compatibility with existing conda packages and environments.
Pros
- Significantly faster than conda, especially for large environments
- Parallel downloads and installations
- Compatible with existing conda packages and environments
- Cross-platform support (Linux, macOS, Windows)
Cons
- Still a relatively new project, may have some stability issues
- Not all conda features are fully implemented yet
- Requires separate installation alongside conda
- Learning curve for users familiar with conda-only workflows
Code Examples
- Creating a new environment:
mamba create -n myenv python=3.9 numpy pandas
This creates a new environment named "myenv" with Python 3.9, NumPy, and pandas installed.
- Installing packages in an existing environment:
mamba install -n myenv scikit-learn matplotlib
This installs scikit-learn and matplotlib in the "myenv" environment.
- Updating all packages in an environment:
mamba update -n myenv --all
This updates all packages in the "myenv" environment to their latest compatible versions.
Getting Started
To get started with Mamba, follow these steps:
- Install Mamba using Conda:
conda install mamba -n base -c conda-forge
- Create a new environment:
mamba create -n myenv python=3.9
- Activate the environment:
conda activate myenv
- Install packages:
mamba install numpy pandas matplotlib
- Use your new environment with installed packages:
python -c "import numpy as np; print(np.__version__)"
Competitor Comparisons
A system-level, binary package and environment manager running on all major operating systems and platforms.
Pros of conda
- Mature and widely adopted ecosystem with extensive documentation
- Supports a broader range of platforms and architectures
- More flexible package specification and environment management
Cons of conda
- Slower package resolution and installation process
- Higher memory usage during package operations
- Less efficient handling of large environments
Code comparison
conda:
conda create -n myenv python=3.8
conda activate myenv
conda install numpy pandas
mamba:
mamba create -n myenv python=3.8
mamba activate myenv
mamba install numpy pandas
The syntax for both conda and mamba is nearly identical, with the main difference being the use of mamba
instead of conda
in the command. Mamba is designed to be a drop-in replacement for conda, offering faster performance while maintaining compatibility with conda's commands and package ecosystem.
A conda-forge distribution.
Pros of Miniforge
- Provides pre-configured Conda environments with Conda-Forge as the default channel
- Includes a minimal installer for a more lightweight setup
- Supports multiple architectures and operating systems out-of-the-box
Cons of Miniforge
- May have slower package resolution and installation compared to Mamba
- Limited to Conda-Forge packages by default, which may not include all desired packages
- Lacks some advanced features and optimizations present in Mamba
Code Comparison
Miniforge (using Conda):
conda create -n myenv python=3.9
conda activate myenv
conda install numpy pandas
Mamba:
mamba create -n myenv python=3.9
mamba activate myenv
mamba install numpy pandas
The syntax is similar, but Mamba typically offers faster execution and improved dependency resolution.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
The Fast Cross-Platform Package Manager
part of mamba-org | ||
---|---|---|
Package Manager mamba | Package Server quetz | Package Builder boa |
mamba
mamba
is a reimplementation of the conda package manager in C++.
- parallel downloading of repository data and package files using multi-threading
- libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE
- core parts of
mamba
are implemented in C++ for maximum efficiency
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 a bigger ecosystem to make scientific packaging more sustainable. You can read our announcement blog post.
The ecosystem also consists of quetz
, an open source conda
package server and boa
, a fast conda
package builder.
Installation
Please refer to the mamba and micromamba installation guide 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 e.g. micromamba create -n my-env -f conda-lock.yml
with an environment lockfile named *-lock.yml
or *-lock.yaml
.
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:
- Using
micromamba
, which takes around 1 s to install. - Caching package downloads.
- Caching entire
conda
environments.
micromamba
micromamba
is a small, pure-C++ reimplementation of mamba
/conda
. It strives to be a full replacement for mamba
and conda
. As such, it doesn't use any conda
code (in fact it doesn't require Python at all).
See the documentation on micromamba
for details.
Development installation
Please refer to the instructions given by the official documentation.
Support us
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.
- When: Tuesday 4:00 PM CET (Europe)
- Where: Mamba jitsi
- What: Meeting notes
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot