Charlie Marsh's Avatar

Charlie Marsh

@crmarsh.com.bsky.social

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

7,493 Followers  |  315 Following  |  252 Posts  |  Joined: 15.04.2023  |  1.8912

Latest posts by crmarsh.com on Bluesky

I think “selling point” is a bit strong. To me it’s more “an interesting thing that wasn’t true before.”

04.07.2025 16:05 — 👍 5    🔁 0    💬 0    📌 0

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.

03.07.2025 01:55 — 👍 59    🔁 2    💬 4    📌 0

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.)

03.07.2025 01:55 — 👍 32    🔁 0    💬 2    📌 0
Post image

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.

03.07.2025 01:55 — 👍 231    🔁 42    💬 6    📌 3

Amazing!

03.06.2025 20:21 — 👍 2    🔁 0    💬 0    📌 0

Thanks Adam!

14.05.2025 13:16 — 👍 3    🔁 0    💬 0    📌 0

...plus Brent Westbrook and Dhruv Manilawala :)

13.05.2025 17:00 — 👍 15    🔁 0    💬 0    📌 0

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...

13.05.2025 17:00 — 👍 25    🔁 0    💬 1    📌 0

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!

13.05.2025 17:00 — 👍 11    🔁 1    💬 1    📌 0

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 :)

13.05.2025 17:00 — 👍 10    🔁 0    💬 1    📌 0

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).

13.05.2025 17:00 — 👍 8    🔁 0    💬 1    📌 0
Post image

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.).

13.05.2025 17:00 — 👍 17    🔁 0    💬 2    📌 0

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.

13.05.2025 17:00 — 👍 11    🔁 0    💬 1    📌 0

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.

13.05.2025 17:00 — 👍 9    🔁 0    💬 1    📌 0

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.

13.05.2025 17:00 — 👍 10    🔁 0    💬 1    📌 0

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.

13.05.2025 17:00 — 👍 16    🔁 0    💬 1    📌 0
Post image

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.)

13.05.2025 17:00 — 👍 330    🔁 84    💬 14    📌 13
Preview
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...

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!

14.03.2025 11:06 — 👍 28    🔁 5    💬 0    📌 0
>40% improvement on aarch64 macOS

>40% improvement on aarch64 macOS

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

12.03.2025 00:45 — 👍 54    🔁 8    💬 5    📌 0

Hahah thank you 🙇‍♂️

10.03.2025 01:50 — 👍 2    🔁 0    💬 0    📌 0

\ht to @simonwillison.net who reminded me of this

16.02.2025 02:18 — 👍 5    🔁 0    💬 1    📌 0
Post image

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! 🥳

16.02.2025 02:18 — 👍 416    🔁 37    💬 18    📌 5

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 !

12.02.2025 22:37 — 👍 80    🔁 17    💬 4    📌 3
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...

github.com/astral-sh/py...

11.02.2025 13:59 — 👍 0    🔁 0    💬 0    📌 0

Yeah it should be, but you may need to reinstall Python with uv?

11.02.2025 13:59 — 👍 0    🔁 0    💬 1    📌 0

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

11.02.2025 11:07 — 👍 75    🔁 14    💬 6    📌 1
Post image

🐍🎧 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.

https://realpython.com/podcasts/rpp/238/

10.02.2025 22:21 — 👍 24    🔁 7    💬 3    📌 0
Preview
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 ...

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...

07.02.2025 18:17 — 👍 30    🔁 1    💬 1    📌 0

Thank you!

07.02.2025 23:37 — 👍 1    🔁 0    💬 0    📌 0

For now, we're working towards an initial alpha release. When it's ready, I'll make sure you know :)

29.01.2025 17:18 — 👍 42    🔁 0    💬 0    📌 0

@crmarsh.com is following 20 prominent accounts