Sign in

Charlie Marsh

@crmarsh.com
7.8K followers 315 following 270 posts

Building Astral: Ruff, uv, and other high-performance Python tools, written in Rust.

PostsRepliesMedia
Reposted by Charlie Marsh
Sebastián Ramírez @tiangolo.com · 10/11/2025
A basic @fastapi.tiangolo.com app, just one command away. 🎁 First FastAPI thing from @savannah.dev ! 🙌 Also, @crmarsh.com 's uv is awesome, use it. 😎
1172
Charlie Marsh @crmarsh.com · 20/11/2025
Thank you!
030
Charlie Marsh @crmarsh.com · 13/08/2025
astral.sh/blog/introdu...
astral.sh
pyx: a Python-native package registry, now in Beta
pyx is a Python-native package registry from the creators of uv.
0212
Charlie Marsh @crmarsh.com · 13/08/2025
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
astral.sh
pyx | Astral
A Python-native package registry from the creators of uv.
060
Charlie Marsh @crmarsh.com · 13/08/2025
The goal of pyx is to meet that growing demand and growing complexity.
140
Charlie Marsh @crmarsh.com · 13/08/2025
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.
150
Charlie Marsh @crmarsh.com · 13/08/2025
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.
140
Charlie Marsh @crmarsh.com · 13/08/2025
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.
130
Charlie Marsh @crmarsh.com · 13/08/2025
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.
140
Charlie Marsh @crmarsh.com · 13/08/2025
From that perspective, pyx is just the first piece in a broader vision to build the Astral platform: our next-generation infrastructure for Python.
130
Charlie Marsh @crmarsh.com · 13/08/2025
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.
150
Charlie Marsh @crmarsh.com · 13/08/2025
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.
140
Charlie Marsh @crmarsh.com · 13/08/2025
"Why did the latest setuptools release break our build? Can't we harden against that?"
130
Charlie Marsh @crmarsh.com · 13/08/2025
"Why is everyone on my team re-building the same packages over and over again on their machines?"
130
Charlie Marsh @crmarsh.com · 13/08/2025
"Why is it so hard to install PyTorch, or CUDA, or libraries like FlashAttention or DeepSpeed that build against PyTorch and CUDA?"
130
Charlie Marsh @crmarsh.com · 13/08/2025
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...
240
Charlie Marsh @crmarsh.com · 13/08/2025
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.
190
Charlie Marsh @crmarsh.com · 13/08/2025
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
astral.sh
pyx | Astral
A Python-native package registry from the creators of uv.
280
Charlie Marsh @crmarsh.com · 13/08/2025
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".
417237
Charlie Marsh @crmarsh.com · 04/07/2025
I think “selling point” is a bit strong. To me it’s more “an interesting thing that wasn’t true before.”
050
Charlie Marsh @crmarsh.com · 03/07/2025
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.
4632
Charlie Marsh @crmarsh.com · 03/07/2025
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.)
2330
Charlie Marsh @crmarsh.com · 03/07/2025
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.
523643
Charlie Marsh @crmarsh.com · 03/06/2025
Amazing!
010
Charlie Marsh @crmarsh.com · 14/05/2025
Thanks Adam!
020
Charlie Marsh @crmarsh.com · 13/05/2025
...plus Brent Westbrook and Dhruv Manilawala :)
0130
Charlie Marsh @crmarsh.com · 13/05/2025
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...
1240
Charlie Marsh @crmarsh.com · 13/05/2025
Like Ruff and uv, we're building this project in the open alongside a community of contributors -- over a thousand PRs in total across 30+ authors. So first: thank you to everyone that's contributed to ty over the past few months!
1101
Charlie Marsh @crmarsh.com · 13/05/2025
From here, we'll be implementing the rest of the typing spec, and iterating closely with users as we push towards a production-ready release. If you're interested in helping us get there, give it a try :)
190
Charlie Marsh @crmarsh.com · 13/05/2025
Over the past few months, we've focused on: 1. Defining the core architecture (highly incremental, to power a language server -- built on the same underlying engine as rust-analyzer). 2. Implementing a bunch of type system features (e.g., generics, overloads, protocols).
170
Charlie Marsh @crmarsh.com · 13/05/2025
Alongside the preview release, we're also shipping an official VS Code extension. And you can use `ty server` directly in any editor that supports the Language Server Protocol (Neovim, etc.).
1150
Charlie Marsh @crmarsh.com · 13/05/2025
Like Ruff and uv, ty is open-source and MIT-licensed, so you can use the same tool on the command line, in CI, in any editor, across your team, etc.
190
Charlie Marsh @crmarsh.com · 13/05/2025
Instead, this release is about giving users a _preview_ of what to expect from ty, and a call to follow along as we work towards a stable release later this year.
180
Charlie Marsh @crmarsh.com · 13/05/2025
With the preview release, we don't expect ty to be usable in production. It's feature-incomplete, and you should expect to encounter bugs or even fatal errors.
1100
Charlie Marsh @crmarsh.com · 13/05/2025
Our goal with ty is to build the best static analysis toolchain for Python -- to push the boundaries of how helpful a type checker can be in a highly dynamic ecosystem. And we want it to be capable of scaling to tens or even hundreds of millions of lines of code.
1150
Charlie Marsh @crmarsh.com · 13/05/2025
Today, we’re announcing the preview release of ty, an extremely fast type checker and language server for Python, written in Rust. In early testing, it's 10x, 50x, even 100x faster than existing type checkers. (We've seen >600x speed-ups over Mypy in some real-world projects.)
1433384
Reposted by Charlie Marsh
Trifecta Tech Foundation @trifectatech.bsky.social · 14/03/2025
zlib-rs is now used in uv! uv is the extremely fast Python package & project manager with over 200M requests/day. Not only are we happy about the adoption but also grateful for Astral and @crmarsh.com stepping up and supporting us through a GitHub sponsorship. Thanks!
github.com
Migrate to `zlib-rs` (again) by charliermarsh · Pull Request #11894 · astral-sh/uv
Summary I believe zlib-rs is now a better choice on ARM and x86, so I'm just going to assume it's a better choice everywhere. It's much easier to build (removes our CMake dependency), a...
0285
Reposted by Charlie Marsh
Zanie Blue @zanieb.bsky.social · 12/03/2025
In the latest version of uv, we've updated the build system for our managed Python versions to use the latest LLVM version and cherry-picked an extra fix for a performance bug (github.com/llvm/llvm-pr...) and the early benchmarks are pretty exciting! On M3 macOS
>40% improvement on aarch64 macOS
5528
Charlie Marsh @crmarsh.com · 10/03/2025
Hahah thank you 🙇‍♂️
020
Charlie Marsh @crmarsh.com · 16/02/2025
\ht to @simonwillison.net who reminded me of this
160
Charlie Marsh @crmarsh.com · 16/02/2025
uv is one year old today. Hard to believe its only been a year. The growth, adoption, and impact surpassed my wildest expectations. Happy birthday, uv! 🥳
1741136
Reposted by Charlie Marsh
Zanie Blue @zanieb.bsky.social · 12/02/2025
Python 3.14.0a5 is out today in uv 0.5.31 and includes a new tail calling interpreter which, from some quick benchmarks, looks like a 1.23x performance improvement !
48017
Charlie Marsh @crmarsh.com · 11/02/2025
github.com/astral-sh/py...
github.com
Patch `_tkinter.c` to look in base prefix by charliermarsh · Pull Request #421 · astral-sh/python-build-standalone
Summary This PR attempts to adresss one of the known quirks around Tcl/tk files. On Windows, CPython will look for the Tcl/tk files at {base_prefix}/lib. That works well for python-build-standalone...
000
Charlie Marsh @crmarsh.com · 11/02/2025
Yeah it should be, but you may need to reinstall Python with uv?
100
Reposted by Charlie Marsh
Rodrigo Girão Serrão 🐍🚀 @mathspp.com · 11/02/2025
How to create a Python CLI that's globally available in your system in 5 easy steps. 1. Install uv 2. Init project with `uv init --app --package mycli` 3. Write code 4. Install with `uv tool install . -e` 5. Use `mycli` anywhere in your computer
67614
Reposted by Charlie Marsh
Real Python @realpython.com · 10/02/2025
🐍🎧 Charlie Marsh: Accelerating Python Tooling With Ruff and uv How is the Rust programming language being used to speed up Python tools? This week on the show, we speak with @crmarsh.com about his company, Astral, and their tools, uv and Ruff. realpython.com/podcasts/rpp/238
3237
Reposted by Charlie Marsh
Christopher Bailey @digiglean.bsky.social · 07/02/2025
I want to thank @crmarsh.com for coming on the show this week. What a great conversation! We dug in to Ruff, uv, Astral, and a new typing tool being developed. Thanks again! realpython.com/podcasts/rpp...
realpython.com
Episode #238: Charlie Marsh: Accelerating Python Tooling With Ruff and uv – The Real Python Podcast
Are you looking for fast tools to lint your code and manage your projects? How is the Rust programming language being used to speed up Python tools? This week on the show, we speak with Charlie Marsh ...
1301
Charlie Marsh @crmarsh.com · 07/02/2025
Thank you!
010
Charlie Marsh @crmarsh.com · 29/01/2025
For now, we're working towards an initial alpha release. When it's ready, I'll make sure you know :)
0420
Charlie Marsh @crmarsh.com · 29/01/2025
Warning: this project is _not_ ready for real-world user testing, and certainly not for production use (yet). The core architecture is there, but we're still lacking support for some critical features. Right now, I'd only recommend trying it out if you're looking to contribute.
1320