It's your friendly neighborhood Anonymous Rust Dev, back to offend your sensibilities once again...
Among its strengths, Python includes a language that is so "easy" to learn that it's given to children as their introduction to programming. Its ease of writing and a comprehensive ecosystem of third-party libraries allow it to handle almost any conceivable need.
But you have to get those libraries somehow. Some options are available, including the perennial favorite pip (which you generally get for free these days just by having Python). So why would we want to have a conversation about the cool new kid on the block, uv?
Well, I am the resident Rust evangelist, so of course, I'm going to gravitate toward the Rust-based option, right? Well, before Rust, I came from a NodeJS environment and have seen something similar in that world—NPM, the out-of-the-box king, has been threatened by Yarn and PNPM. And guess what? At the end of the day, the original ruler keeps his throne, though not without some attrition.
So, for all my desire to see a Rust-based project succeed, I know in my heart of hearts that the incumbent option tends to hold its position tightly. A morbid curiosity demands that I find out for myself whether I have yet another feather in my cap that I can brandish at the Python crowd to woo them over, or if my hopes in the Rust-based option are misplaced.
What is UV?
Actually, I don't even know where it gets the name. Does it cause skin cancer? Are we just taking more random characters from the alphabet?
For the curious, the authors mostly just ran out of good names.
More importantly, though, what is it, and what problem does it solve? Well, if you're here, you probably already know, but let's consider what the official docs have to say on the matter:
🚀 A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more.
⚡ 10-100x faster than pip.
🗂️ Provides comprehensive project management, with a universal lockfile.
❇️ Runs scripts, with support for inline dependency metadata.
🐍 Installs and manages Python versions.
🛠️ Runs and installs tools published as Python packages.
🔩 Includes a pip-compatible interface for a performance boost with a familiar CLI.
🏢 Supports Cargo-style workspaces for scalable projects.
💾 Disk-space efficient, with a global cache for dependency deduplication.
⏬ Installable without Rust or Python via curl or pip.
🖥️ Supports macOS, Linux, and Windows.