PyConDE & PyData Berlin 2024

Bridging the worlds: pixi reimplements pip and conda in Rust
04-24, 14:45–15:15 (Europe/Berlin), B09

Pixi is a modern package manager that bridges the worlds of conda and pip package management. A from-scratch implementation of a SAT solver that works for both pip and conda, native lockfiles and a cross-platform task system are compelling features of this new package manager.


Pixi goes further than existing conda-based package managers in many ways:

  • From scratch implemented in Rust and ships as a single binary
  • Integrates a new SAT solver called resolvo
  • Supports lockfiles like poetry / yarn / cargo
  • Cross-platform task system (simple bash-like syntax)

A major requested feature was interoperability with PyPI packages. For this we have created a standalone library called rip. Rip contains all the code needed to download and extract wheels and SDist packages straight from PyPI, and also uses resolvo for resolution.

We had to overcome some PyPI specific hurdles that we want to discuss in the talk:

  • Lazy fetching of metadata, since on PyPI it is embedded in the wheel
  • Resolving Python packages for other platforms and locking them (since we want to resolve on Linux for Windows)

We’re looking forward to take a deep-dive together into what conda and PyPI packages are and how we are seamlessly integrating the two worlds in pixi. We’ll also look at some benchmarks and explain more about the conda ecosystem and why it might still have a reason to exist (even though wheels also solve a lot of the painpoints).

More information about Pixi:


Expected audience expertise: Domain

Novice

Expected audience expertise: Python

Novice

Abstract as a tweet (X) or toot (Mastodon)

pixi is an awesome new package manager that combines the power of conda & pip.

Public link to supporting material, e.g. videos, Github, etc.

https://github.com/prefix-dev/pixi

Wolf is a conda-forge veteran and renowned software package wrangler. Wolf has started the mamba package manager (and prefix.dev) to make cross-platform, high-performance package management a reality. He has also packaged a lot of software for conda-forge and is a core member of the conda-forge team, as well as the founder of the RoboStack project.