pixi: Package management made easy
pixi is a cross-platform, multi-language package manager and workflow tool
built on the shoulders of the conda ecosystem.
pixi provides all developers the exceptional experience that is usually found
with package managers like cargo or yarn but for any language.
pixi is made with ❤️ at prefix.dev
https://github.com/prefix-dev/pixi/assets/885054/64666dee-841d-4680-9a61-7927913bc4e2
Highlights
- Support for multiple languages like Python, C++ and R using Conda packages. Search for available packages on: prefix.dev
- All OS's: Linux, Windows, macOS (including Apple Silicon)
- A lockfile is always included and always up-to-date.
- A clean and simple Cargo-like command-line interface.
- Install tools per-project or system-wide.
- Completely written in Rust and build on top of the rattler library.
Getting Started
Status
This project is currently in alpha stage. There are many features that we want to add. The file formats are still in flux. Expect breaking changes while we work towards a v1.0.
Some notable features that we have in the pipeline are:
- Build and publish your project as a Conda package.
- Support for PyPi packages.
- Support dependencies from source.
- Improve docs, examples and user experience
Installation
You can install pixi as a binary from the releases.
pixi can be installed on macOS, Linux, and Windows.
The provided scripts will automatically download the latest version of pixi, extract it, and move the pixi binary to ~/.pixi/bin.
If this directory does not already exist, the script will create it.
macOS and Linux
To install Pixi on macOS and Linux, open a terminal and run the following command:
|
# or
|
# or with brew
The script will also update your ~/.bash_profile to include ~/.pixi/bin in your PATH, allowing you to invoke the pixi command from anywhere. You might need to restart your terminal or source your shell for the changes to take effect.
Windows
To install Pixi on Windows, open a PowerShell terminal (you may need to run it as an administrator) and run the following command:
iwr -useb https://pixi.sh/install.ps1 | iex
The script will inform you once the installation is successful and add the ~/.pixi/bin directory to your PATH, which will allow you to run the pixi command from any location.
Install from source
pixi is 100% written in Rust and therefore it can be installed, build and tested with cargo.
To start using pixi from a source build run:
cargo install --locked pixi
# Or to use the the latest `main` branch
cargo install --locked --git https://github.com/prefix-dev/pixi.git
or when you want to make changes use:
cargo build
cargo test
If you have any issues building because of the dependency on rattler checkout
it's compile steps
Uninstall
To uninstall the pixi binary should be removed.
Delete pixi from the $PIXI_DIR which is default to ~/.pixi/bin/pixi
So on linux its:
rm ~/.pixi/bin/pixi
and on windows:
$PIXI_BIN = "$Env:LocalAppData\pixi\bin\pixi"; Remove-Item -Path $PIXI_BIN
After this command you can still use the tools you installed with pixi.
To remove these as well just remove the whole ~/.pixi directory and remove the directory from your path.
Autocompletion
To get autocompletion run:
# On unix (MacOS or Linux), pick your shell (use `echo $SHELL` to find the shell you are using.):
echo 'eval "$(pixi completion --shell bash)"' >> ~/.bashrc
echo 'eval "$(pixi completion --shell zsh)"' >> ~/.zshrc
echo 'pixi completion --shell fish | source' >> ~/.config/fish/config.fish
echo 'eval (pixi completion --shell elvish | slurp)' >> ~/.elvish/rc.elv
For PowerShell on Windows:
Add-Content -Path $PROFILE -Value '(& pixi completion --shell powershell) | Out-String | Invoke-Expression'
And then restart the shell or source the shell config file.
Usage
The cli looks as follows:
)
)
Creating a pixi project
Initialize a new project and navigate to the project directory
pixi init myproject
cd myproject
Add the dependencies you want to use
pixi add cowpy
Run the installed package in its environment
Activate a shell in the environment
pixi shell
cowpy "Thanks for using pixi"
exit
Installing a conda package globally
You can also globally install conda packages into their own environment.
This behavior is similar to pipx or condax.
Use in GitHub Actions
You can use pixi in GitHub Actions to install dependencies and run commands.
- uses: prefix-dev/setup-pixi@v0.2.0
with:
cache: true
- run: pixi run cowpy "Thanks for using pixi"
Contributing 😍
We would absolutely love for you to contribute to pixi!
Whether you want to start an issue, fix a bug you encountered, or suggest an
improvement, every contribution is greatly appreciated.
If you're just getting started with our project or stepping into the Rust
ecosystem for the first time, we've got your back!
We recommend beginning with issues labeled as good first issue.
These are carefully chosen tasks that provide a smooth entry point into
contributing.These issues are typically more straightforward and are a great way
to get familiar with the project.
Got questions or ideas, or just want to chat? Join our lively conversations on Discord. We're very active and would be happy to welcome you to our community. Join our discord server today!
Built using pixi
To see what's being built with pixi check out the Community page.