Skip to main content
πŸŽ“ Claude Code Masterclass Learn AI-assisted development on Udemy β€” plus the companion book on Leanpub & Amazon. Start Learning
Luca Berton selfie at the Pixi package manager talk during RustNL meetup
Open Source

Pixi: Building a Package Manager in Rust at RustNL Meetup

Live coverage of Tim de Jager and Bas Zalmstra from prefix.dev presenting Pixi β€” a fast, cross-platform package manager built in Rust on the conda.

LB
Luca Berton
Β· 4 min read

I attended the RustNL meetup in Amsterdam where Tim de Jager and Bas Zalmstra from prefix.dev presented their journey building Pixi β€” a modern package manager written entirely in Rust. The talk was titled β€œIntroducing Pixi β€” A Journey of Making a Package Manager in Rust” and delivered some fascinating insights into building developer tools at scale.

Luca Berton selfie at the Pixi talk with "Thanks For Listening" slide

What Is Pixi?

Pixi is an open-source package manager (github.com/prefix-dev/pixi β€” 9,000+ stars) built on the conda/conda-forge ecosystem. It supports:

  • Global and Local environments via pixi.toml and pixi.lock
  • Binary AND source dependencies β€” not just one or the other
  • Multi-language projects β€” perfect for Robotics, Data Science, and mixed stacks
  • First-class Windows support β€” unlike most package managers that treat Windows as an afterthought

The Philosophy

The team built Pixi around six core principles:

  1. Fast β€” parallel downloads, reflinks, lazy solving
  2. User Friendly β€” simple CLI, intuitive configuration
  3. Isolated Environments β€” no global pollution
  4. Single Tool β€” replaces conda, mamba, pip, virtualenv
  5. Fun β€” both to use and to build
  6. First-class Windows β€” not a second-class citizen

Who Uses Pixi?

Major projects have adopted Pixi for their development workflows:

  • CPython β€” the reference Python implementation
  • FreeCAD β€” open-source parametric 3D modeler
  • mamba β€” the fast conda package manager itself
  • modflow β€” USGS groundwater modeling
  • NVIDIA/cuda-python β€” CUDA Python bindings

The Architecture: Four Rust Crates

The closing slide revealed the full ecosystem of projects:

Thanks For Listening slide showing all four Pixi projects with mascots

  1. Pixi 🐱 β€” the user-facing CLI and environment manager
  2. Rattler πŸ€– β€” the core library for conda package management
  3. Resolvo 🧩 β€” a custom SAT solver for dependency resolution
  4. Rattler-build πŸ”¨ β€” build system for conda packages

Each project has its own mascot character and is published independently on crates.io.

Why So Fast?

This was one of the most technically interesting slides β€” the specific engineering decisions that make Pixi blazingly fast:

Why so fast? slide explaining Pixi performance architecture

  • Rattler: Parallel download, extract, and link β€” bounded only by IO throughput
  • Rattler: Reflinks first, then hardlinks, then copy. Fresh environments cost almost nothing
  • Rattler/Sparse: Crate fetches over HTTP range requests. Often skips the full archive entirely
  • Rattler: Shared jlap metadata with conditional GET. Warm start is nearly free
  • Resolvo: Lazy CDCL solving. Only fetches metadata for packages it actually considers

The key insight: every layer of the stack is optimized independently. The solver never fetches unnecessary metadata. The installer never copies when it can link. The downloader never transfers when it can reuse.

What They Did Right

What were Things we did Right slide

Bas reflected on the decisions that paid off:

  • Directly made Rattler into a library β€” not an application with library extraction later
  • Started dogfooding Rattler with Pixi.dev β€” eating their own cooking early
  • Invested into making their own solver (Resolvo) β€” rather than wrapping an existing SAT solver
  • Had a project style which worked for them β€” team culture matters

Audience engaged during the "did right" section

Speaker explaining right decisions with code examples

What Could Have Been Done Better

The team was refreshingly honest about their mistakes:

What were Things we could've done Better slide

  • Did not split pixi into crates directly β€” monolithic at first, harder to decompose later
  • Did not invest enough into faster CI:
    • Offline tests
    • Mock Registries (conda and PyPI)
  • Started on the build feature late in the process β€” should have been earlier
  • Still find it really hard to juggle features vs. issues β€” the eternal open-source dilemma

Audience during retrospective section with code on projector

Speaker explaining CI improvements needed

Tim de Jager’s Background

Tim previously worked at:

  • Abbey Games β€” C++ game development
  • Smart Robotics β€” C++ and Python robotics

This cross-domain experience shaped Pixi’s focus on multi-language projects. When you’ve worked in robotics where Python meets C++ meets ROS, you understand the pain of managing dependencies across language boundaries.

Why Pixi Is Fun to Build

Tim shared that working on a package manager is uniquely rewarding because:

  • It combines algorithmic challenges (SAT solving, dependency resolution) with engineering problems (IO optimization, caching strategies)
  • The community is grateful β€” developers love fast tools
  • Active Discord community of ~250 members providing feedback
  • His takeaway: β€œThere is more than cargo. Working on package management is fun.”

Key Takeaways for Rust Developers

  1. Library-first design pays off β€” make it a library from day one, not an afterthought
  2. Dogfood early β€” use your own tool in production before others do
  3. Invest in custom solutions where performance matters (Resolvo vs wrapping minisat)
  4. CI speed is a feature β€” mock registries and offline tests save enormous time
  5. HTTP range requests are underutilized β€” you often don’t need the full archive
  6. Reflinks/hardlinks should be your first choice, copy your last resort

The Rust Package Manager Landscape

Pixi occupies an interesting niche: it’s not competing with Cargo (Rust packages) but rather with conda, pip, and mamba (Python/C++/multi-language packages). By building in Rust, they get:

  • Memory safety without GC pauses during resolution
  • Fearless concurrency for parallel downloads
  • Zero-cost abstractions for the solver
  • Cross-compilation support for all platforms

If you’re interested in Rust language development, check out my coverage of the Inko programming language talk from the same meetup β€” a language that compiles through Rust’s LLVM backend with Erlang-style concurrency.

For more on developer tooling and package management in the cloud-native space, see:


Pixi is open source at github.com/prefix-dev/pixi. The RustNL meetup was hosted at the JetBrains office in Amsterdam.

#Rust #Package Management #DevTools #Open Source
Share:

πŸ“¬ Don't miss the next one

Get AI & Cloud insights delivered weekly

Join engineers getting practical tips on AI, Kubernetes, Ansible, and Platform Engineering.

Subscribe Free β†’
Luca Berton β€” AI & Cloud Advisor, Docker Captain

Luca Berton

AI & Cloud Advisor Β· Docker Captain Β· KubeCon Speaker

18+ years in enterprise infrastructure. Author of 8 technical books, creator of Ansible Pilot (1M+ YouTube views, 648K site users). Former Red Hat engineer. Speaker at KubeCon EU 2026 and Red Hat Summit 2026.

Free 30-min AI & Cloud consultation

Book Now