Charlie Marsh
@crmarsh.com
7.6K followers 320 following 270 posts
Building Astral: Ruff, uv, and other high-performance Python tools, written in Rust.
Posts Media Videos Starter Packs
crmarsh.com
pyx is not yet generally available -- we're a small team, iterating on the product with early partners.

If you're interested in the future of Python, if these problems resonate with you, or even if you're just a fan of our work: get in touch today 👇👇👇

astral.sh/pyx
pyx | Astral
A Python-native package registry from the creators of uv.
astral.sh
crmarsh.com
The goal of pyx is to meet that growing demand and growing complexity.
crmarsh.com
The amount of Python code in the world is exploding, and packaging is only becoming more critical.

Increasingly, Python packages not only contain native code, but are built for specialized specialized software and hardware.
crmarsh.com
pyx is also a good example of our strategy and philosophy.

Our tools remain free, open source, and permissively licensed. Nothing changes there. Instead, we want to offer hosted services that represent the "natural next thing you need" when you're already using our tools.
crmarsh.com
You won't need to use pyx to use uv, and you won't need to use uv to use pyx. But when used together, entire classes of problems disappear.
crmarsh.com
Our deep focus on Python enables us to build better Python infra than anything else out there; and integration with our open source tools enables us to build experiences that otherwise wouldn't be possible at all.
crmarsh.com
From that perspective, pyx is just the first piece in a broader vision to build the Astral platform: our next-generation infrastructure for Python.
crmarsh.com
A "private registry" typically connotes security, compliance, etc.

pyx gives you those things, but the ideas behind it are actually much bigger. pyx is about improving the developer experience of working with Python. Solving user problems with our own infrastructure.
crmarsh.com
With pyx, we can solve these problems.

And for me, that's the most exciting thing about it. By providing our own end-to-end infrastructure we can solve _so_ many more problems for users that used to be out-of-scope.
crmarsh.com
"Why did the latest setuptools release break our build? Can't we harden against that?"
crmarsh.com
"Why is everyone on my team re-building the same packages over and over again on their machines?"
crmarsh.com
"Why is it so hard to install PyTorch, or CUDA, or libraries like FlashAttention or DeepSpeed that build against PyTorch and CUDA?"
crmarsh.com
Much of the inspiration for pyx comes from the classes of problems we see in the uv issue tracker that we can't solve with a client alone -- but could solve with a server. For example...
crmarsh.com
With pyx, uv becomes even faster, more secure, and hardware-aware (PyTorch, CUDA, FlashAttention, etc. become first-class citizens).

You can use pyx to host private packages (it's much faster than other private registries), or as a frontend to public sources like PyPI.
crmarsh.com
pyx is now live with our early partners, including Ramp, Intercom, and fal.

As we work towards GA, we're looking for more early users to help shape the future of Python infrastructure.

Get in touch today 👇👇👇

astral.sh/pyx
pyx | Astral
A Python-native package registry from the creators of uv.
astral.sh
crmarsh.com
Today, we're announcing our first hosted infrastructure product: pyx, a Python-native package registry.

We think of pyx as an optimized backend for uv: it’s a package registry, but it also solves problems that go beyond the scope of a traditional "package registry".
crmarsh.com
I think “selling point” is a bit strong. To me it’s more “an interesting thing that wasn’t true before.”
crmarsh.com
One underrated implication here: we can now build and publish your package without running or even installing Python.

In pure Rust, we can build your Python package, install it, publish it to a registry, etc.
crmarsh.com
Try it out by setting your project's build system, or running `uv init --build-backend uv`:

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

(In a future release, we'll make this the default.)
crmarsh.com
The uv build backend is now stable, and considered ready for production use.

An alternative to setuptools, hatchling, etc. for pure Python projects, with a focus on good defaults, user-friendly error messages, and performance.

When used with uv, it's 10-35x faster.
crmarsh.com
...plus Brent Westbrook and Dhruv Manilawala :)
crmarsh.com
And second: thank you (and congratulations) to the folks on the Astral team that made this release possible: @alexwaygood.bsky.social, @burntsushi.net, @carljm.me, @dcreager.net, @gankra.bsky.social, @ibraheem.ca, @michareiser.bsky.social, @sharkdp.bsky.social, @zanieb.bsky.social...