The uv build backend is now stable

The uv build backend is now stable

July 3, 2025

For about a year, uv has had a uv build command for generating distributable wheels and source distributions on pypi and elsewhere.

However, uv has relied on other tools for the build backend, i.e. the actual piece constructing the wheel or sdist as defined by PEP 517. By default, uv uses hatchling as the build backend.

As of this week, the uv team has now declared the uv build backend as stable and, most notably, really, really fast. Charlie Marsh’s benchmarks suggest that it’s 10 to 35 times faster than flit, hatchling, and setuptools. While I’ve never really needed my package builds to be faster, I’ve learned that faster tools often enable new things I didn’t imagine possible; I’m interested to see what those might be here.

Because uv is written entirely in Rust, Charlie notes that “One underrated implication here: we can now build and publish your package without running or even installing Python.” While this won’t impact most developers day-to-day, it will likely make it easier to build and publish packages in CI.

To enable the uv build backend, you can add the following to your pyproject.toml:

[build-system]
requires = ["uv_build>=0.7.19,<0.8.0"]
build-backend = "uv_build"

Read more in the uv documentation.

Last updated on

Please submit corrections and feedback...