-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Description
Would it be possible to consider adding Pixi as an installation option (primarily as a modern alternative to conda written in Rust) in the installation guide? https://github.com/facebookresearch/faiss/blob/main/INSTALL.md
Pixi is a Rust-based, modern re-implementation of the conda package manager, offering ~10× faster performance and built-in lockfile support, with a strong focus on reproducibility in scientific environments. https://prefix.dev/blog/pixi_a_fast_conda_alternative
A minimal example for faiss installation would be:
pixi init -c pytorch -c nvidia -c conda-forge
pixi add faiss-cpu=1.13.1 # blazing fast 🚀 (0.47s)pixi init -c pytorch -c nvidia -c conda-forge
pixi add faiss-gpu=1.13.1 # blazing fast 🚀 (0.63s)Pixi is increasingly adopted across the scientific Python + non-Python (C++,BLAS, etc.) ecosystem. For example:
- SciPy now lists uv and pixi as standard installation options: https://scipy.org/install/
- also actively replacing CI env management with pixi CI: use pixi to manage environments scipy/scipy#21489
- PyMC recommends pixi for environment management: https://www.pymc.io/blog/getting_started_with_pymc.html#q-what-about-uv-for-installation
- Meta Momentum also provides pixi-based installation instructions: https://github.com/facebookresearch/momentum
- pyslam also: https://github.com/luigifreda/pyslam
Additional context:
- We have been using Pixi in research projects involving faiss for nearly a year, including GPU/CUDA versions and cuVS, and everything has worked smoothly.
Examples: https://github.com/denkiwakame/pixi-faiss-examples - Recently, some users have expressed serious concerns about licensing issues, and this has sometimes led to a kind of cancel-culture sentiment not only toward Anaconda Inc., but unfortunately toward the broader conda ecosystem including conda-forge, which is fully open and community-driven. uv pip install support #4510
- These discussions often reflect a broader trend:
many users still develop misconceptions around “conda” vs “defaults” vs "conda-forge" vs “Anaconda Inc.” which sometimes leads to unnecessary confusion or negativity.- As a result, discussions can sometimes drift away from what really matters for the research community, reproducibility, and toward debates about modern package managers.
- Pixi avoids defaults entirely and aligns cleanly with the conda-forge ecosystem. (it also privides a modern, fast workflow) https://prefix.dev/blog/towards_a_vendor_lock_in_free_conda_experience
- Although I regularly use both uv and pixi, Pixi is by far the most reliable option when dealing with non-Python dependencies (make, cmake, clang, swig, boost, OpenMP, BLAS, CUDA, ...) and when strict reproducibility is required. (we can lock everything).
If there is any openness to this idea, I would be more than happy to contribute a draft PR.
Thank you again for your continued work on faiss.