Mamba is a drop-in replacement for Conda, a terrific cross-platform package manager. In our opinion, Conda has one fatal flaw: it is too slow when many packages are already installed or when several packages are being installed simultaneously. Mamba still uses Conda for almost everything except dependency resolution. We replaced this part of Conda with an alternative implementation called libsolv - C library, which already underlies package managers on Linux systems like dnf in Fedora or zypper in OpenSuse.
The command line interface, the environment, the package file format, the installation process, the repodata format and everything else is one-to-one as in Conda and works on the same Python code as Conda. So the difference, and the truth, is only in resolving dependencies!
The first good news is that our libsolv edits for Windows support (MSVC) have been added to upstream. This means that libsolv now works fine on all major operating systems (Windows, Linux and OS X). In addition, Michael Schröder from openSUSE helped us a lot by integrating Conda support into libsolv itself!
The latest version of Mamba can be used not only to install, but also to upgrade and remove modules.
For example, now commands
$ mamba update xtensor -c conda-forge
and
$ mamba remove numpy
work without problems and much faster than at Conda.
Thanks to the support of Conda at the level of libsolv, the packages will now match using exactly the same algorithm as in Python. You can use "complex" arguments on the command line, for example:
$ mamba install "blas=*=openblas"
Thanks to our friends in Binder / repo2docker we began to support the installation from yml files too! I am glad to announce that she passes all tests from repo2docker!
$ mamba env create -f xstack.yml
Where xstack.yml is the yml file that conds.
And last but not least, Mamba is no longer alpha. Now it can be downloaded from the default conda-forge channel:
conda install mamba -c conda-forge # or ... <br />mamba update mamba -c conda-forge # of course ;)
Just like Conda has a miniconda for a minimal basic installation, now we also have minimamba using the same mechanism for preparing for the installation of Mamba. This is very cool, because soon Mamba can be used in CI, where it can significantly speed up the build!
Although we are already very pleased with Mamba, since we use it in our daily activities, there is still a lot of work to be done:
And a couple more changes like these - not very complicated, but time consuming to implement. We are still thinking about launching a KickStarter campaign or something like that, to provide funding for job stability.
If you want to contribute, Mamba lives here.
If you want to stay up to date with events: https://twitter.com/wuoulf
Source: https://habr.com/ru/post/456114/
All Articles