PYX: The next step in Python packaging

86 the_mitsuhiko 33 8/13/2025, 6:42:49 PM astral.sh ↗

Comments (33)

notatallshaw · 1h ago
Probably the more useful blog post: https://astral.sh/blog/introducing-pyx
monster_truck · 57m ago
I've been burned too many times by embracing open source products like this.

We've been fed promises like these before. They will inevitably get acquired. Years of documentation, issues, and pull requests will be deleted with little-to-no notice. An exclusively commercial replacement will materialize from the new company that is inexplicably missing the features you relied on in the first place.

woodruffw · 35m ago
For what it's worth, I understand this concern. However, I want to emphasize that pyx is intentionally distinct from Astral's tools. From the announcement post:

> Beyond the product itself, pyx is also an instantiation of our strategy: our tools remain free, open source, and permissively licensed — forever. Nothing changes there. Instead, we'll offer paid, hosted services that represent the "natural next thing you need" when you're already using our tools: the Astral platform.

Basically, we're hoping to address this concern by building a separate sustainable commercial product rather than monetizing our open source tools.

o11c · 21m ago
The entire reason people choose "permissive licenses" is so that it won't last forever. At best, the community can fork the old version without any future features.

Only viral licenses are forever.

woodruffw · 12m ago
I don't think this is true -- a license's virality doesn't mean that its copyright holders can't switch a future version to a proprietary license; past grants don't imply grants to future work under any open source license.
krupan · 7m ago
I think you are making a good point, but please don't use the old Steve Baller FUD term, "viral." Copyleft is a better term
m4r71n · 4m ago
What does GPU-aware mean in terms of a registry? Will `uv` inspect my local GPU spec and decide what the best set of packages would be to pull from Pyx?

Since this is a private, paid-for registry aimed at corporate clients, will there be an option to expose those registries externally as a public instance, but paid for by the company? That is, can I as a vendor pay for a Pyx registry for my own set of packages, and then provide that registry as an entrypoint for my customers?

simonw · 50m ago
This is effectively what Charlie said they were going to build last September when quizzed about their intended business model on Mastodon: https://hachyderm.io/@charliermarsh/113103564055291456
ctoth · 1h ago
As I said a couple weeks ago, they're gonna have to cash out at some point. The move won't be around Uv -- it'll be a protected private PyPi or something.

https://news.ycombinator.com/item?id=44712558

Now what do we have here?

snooniverse · 19m ago
Not sure what you're trying to get at here. Charlie Marsh has literally said this himself; see e.g. this post he made last September:

> "An example of what this might look like (we may not do this, but it's helpful to have a concrete example of the strategy) would be something like an enterprise-focused private package registry."

https://hachyderm.io/@charliermarsh/113103605702842937

Astral has been very transparent about their business model.

kinow · 37m ago
I haven't adopted uv yet watching to see what will be their move. We recently had to review our use of Anaconda tools due to their changes, then review Qt changes in license. Not looking forward to another license ordeal.
zanie · 27m ago
We're hoping that building a commercial service makes it clear that we have a sustainable business model and that our tools (like uv) will remain free and permissively licensed.

(I work at Astral)

simonw · 18m ago
I think having a credible, proven business model is a feature of an open source project - without one there are unanswered questions about ongoing maintenance.

I'm glad to see Astral taking steps towards that.

_verandaguy · 23m ago
Soon: there are 14 competing Python packaging standards.

This is a joke, obviously. We've had more than 14 for years.

woodruffw · 17m ago
Python packaging has a lot of standards, but I would say most of them (especially in the last decade) don't really compete with each other. They lean more towards the "slow accretion of generally considered useful features" style.

This itself is IMO a product of Python having a relatively healthy consensus-driven standardization process for packaging, rather than an authoritative one. If Python had more of an authoritative approach, I don't think the language would have done as well as it has.

(Source: I've written at least 5 PEPs.)

Myrmornis · 59m ago
I wonder whether it will have a flat namespace that everyone competes over or whether the top-level keys will be user/project identifiers of some sort. I hope the latter.
tmvphil · 56m ago
Fundamentally we still have the flat namespace of top level python imports, which is the same as the package name for ~95% of projects, so I'm not sure how they could really change that.
notatallshaw · 44m ago
Package names and module names are not coupled to each other. You could have package name like "company-foo" and import it as "foo" or "bar" or anything else.

But you can if you want have a non-flat namespace for imports using PEP 420 – Implicit Namespace Packages, so all your different packages "company-foo", "company-bar", etc. can be installed into the "company" namespace and all just work.

Nothing stops an index from validating that wheels use the same name or namespace as their package names. Sdists with arbitrary backends would not be possible, but you could enforce what backends were allowed for certain users.

cr125rider · 32m ago
Once we learn to namespace things it’s gonna be so nice. Seems we keep re-learning that lesson…
ddavis · 1h ago
Been waiting to see what Astral would do first (with regards to product). Seems like a mix of artifactory and conda? artifactory providing a package server and conda trying to fix the difficulty that comes from Python packages with compiled components or dependencies, mostly solved by wheels, but of course PyTorch wheels requiring specific CUDA can still be a mess that conda fixes
notatallshaw · 1h ago
Given Astral's heavy involvement in the wheelnext project I suspect this index is an early adopter of Wheel Variants which are an attempt to solve the problems of CUDA (and that entire class of problems not just CUDA specifically) in a more automated way than even conda: https://wheelnext.dev/proposals/pepxxx_wheel_variant_support...
zanie · 25m ago
It's actually not powered by Wheel Variants right now, though we are generally early adopters of the initiative :)
cpeterso · 23m ago
How do you pronounce "pyx"? Pikes, picks, pie-ex?
woodruffw · 9m ago
We've been pronouncing it pea-why-ecks, like uv (you-vee) and ty (tee-why). But I wouldn't say that's permanent yet.
TheChaplain · 1h ago
Pyx is just a registry, just like Pypi, or did I misunderstood it?
woodruffw · 53m ago
Not exactly -- part of pyx is a registry (and that part speaks the same standards as PyPI), but the bigger picture is that pyx part of a larger effort to make Python packaging faster and more cohesive for developers.

To be precise: pyx isn't intended to be a public registry or a free service; it's something Astral will be selling. It'll support private packages and corporate use cases that are (reasonably IMO) beyond PyPI's scope.

(FD: I work on pyx.)

bitpush · 55m ago
Sounds like it. Also ..

> pyx is also an instantiation of our strategy: our tools remain free, open source, and permissively licensed — forever.

woodruffw · 46m ago
FWIW, I think the full paragraph around that snippet is important context:

> Beyond the product itself, pyx is also an instantiation of our strategy: our tools remain free, open source, and permissively licensed — forever. Nothing changes there. Instead, we'll offer paid, hosted services that represent the "natural next thing you need" when you're already using our tools: the Astral platform.

pyx itself is not a tool, it's a service.

wiseowise · 1h ago
Honey wake up, new Astral project just dropped.
PaulHoule · 1h ago
Been waiting for something like this to make it easier to manage multi-package projects.
metalliqaz · 32m ago
> Waitlist

> Private registry

ouch.

yoavm · 26m ago
I actually think this is great. If Astral can figure out a way to make money using a private registry (something that is used mainly by companies), then they'll have to resources to keep building their amazing open-source projects — Ruff and uv. That's a huge win for Python.
erikgahner · 7m ago
100% agree. I am more than happy to see Astral taking steps in this direction. People can continue to use uv, ruff, and ty without having to pay anything, but companies that benefit tremendously from open source initiatives can pay for a private package registry and directly support the continued development of said tools.