Thanks to a blog post by Simon Willison, I learned about the open-source Python tooling by Astral. Coincidentally, I started looking into the Rust programming language a few days ago and was pleasantly surprised by Cargo.
uv
— which is a Python package and project manager written in Rust — is a kind of “Cargo, for Python”. Looking at the highlights in uv
’s README.md file, the tool sounds promising, and I fully intend to try it out soon. The demonstrations on their blog post are convincing, especially uvx
and uv run
:
With
uv run
, you don’t have to think about activating virtual environments, managing dependencies, or keeping your project up-to-date. It just works.
and, more importantly:
(⋯) it also adds features that are essential to local development but not covered by the standards, like relative paths and editable dependencies.
Astral also provides a Python linter and code formatter written in Rust, named ruff
. I’m currently not using a dedicated linter; I’m just relying on my IDE and its built-in checks, but I might try adding ruff
to my workflow.