Charlie Marsh
@crmarsh.com
Building Astral: Ruff, uv, and other high-performance Python tools, written in Rust.
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".
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".
August 13, 2025 at 6:24 PM
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".
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".
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.
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.
July 3, 2025 at 1:55 AM
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.
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.
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.).
And you can use `ty server` directly in any editor that supports the Language Server Protocol (Neovim, etc.).
May 13, 2025 at 5:00 PM
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.).
And you can use `ty server` directly in any editor that supports the Language Server Protocol (Neovim, etc.).
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.)
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.)
May 13, 2025 at 5:00 PM
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.)
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.)
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! 🥳
Happy birthday, uv! 🥳
February 16, 2025 at 2:18 AM
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! 🥳
Happy birthday, uv! 🥳
We’re building a new static type checker for Python, from scratch, in Rust.
From a technical perspective, it’s probably our most ambitious project yet. We’re about 800 PRs deep!
From a technical perspective, it’s probably our most ambitious project yet. We’re about 800 PRs deep!
January 29, 2025 at 5:18 PM
We’re building a new static type checker for Python, from scratch, in Rust.
From a technical perspective, it’s probably our most ambitious project yet. We’re about 800 PRs deep!
From a technical perspective, it’s probably our most ambitious project yet. We’re about 800 PRs deep!
Once selected, Quick Fix actions will allow you to install missing packages into your environment with uv.
January 29, 2025 at 4:06 PM
Once selected, Quick Fix actions will allow you to install missing packages into your environment with uv.
You can now choose uv when setting the Python interpreter for your project, which will then invoke uv to create the virtual environment.
January 29, 2025 at 4:06 PM
You can now choose uv when setting the Python interpreter for your project, which will then invoke uv to create the virtual environment.
Incredible: PyCharm now ships with first-class support for uv!
January 29, 2025 at 4:06 PM
Incredible: PyCharm now ships with first-class support for uv!
January 8, 2025 at 4:44 PM
In the next uv release, resolving Apache Airflow (with a warm cache) gets over 2x faster.
January 8, 2025 at 3:29 PM
In the next uv release, resolving Apache Airflow (with a warm cache) gets over 2x faster.
You can now install the latest Python 3.14 alpha with uv
January 7, 2025 at 6:03 PM
You can now install the latest Python 3.14 alpha with uv
When we get Renovate PRs for dependencies that people on the Astral team maintain
January 6, 2025 at 1:05 AM
When we get Renovate PRs for dependencies that people on the Astral team maintain
Being 100% serious, for me what's described here is a big part of Rust's success.
It's fun. And it makes things that are often un-fun (installing the toolchain, adding dependencies) easy.
It's fun. And it makes things that are often un-fun (installing the toolchain, adding dependencies) easy.
December 29, 2024 at 4:15 PM
Being 100% serious, for me what's described here is a big part of Rust's success.
It's fun. And it makes things that are often un-fun (installing the toolchain, adding dependencies) easy.
It's fun. And it makes things that are often un-fun (installing the toolchain, adding dependencies) easy.
My Christmas gift is this series of PRs making standalone PEP 723 scripts first-class targets for all uv commands.
You'll be able to create lockfiles for PEP 723 scripts, export them to requirements.txt, view the dependencies with uv tree, and more.
You'll be able to create lockfiles for PEP 723 scripts, export them to requirements.txt, view the dependencies with uv tree, and more.
December 25, 2024 at 7:24 PM
My Christmas gift is this series of PRs making standalone PEP 723 scripts first-class targets for all uv commands.
You'll be able to create lockfiles for PEP 723 scripts, export them to requirements.txt, view the dependencies with uv tree, and more.
You'll be able to create lockfiles for PEP 723 scripts, export them to requirements.txt, view the dependencies with uv tree, and more.
Hearing early reports that the first Astral PR upstreaming python-build-standalone changes to CPython has been merged...
December 23, 2024 at 5:29 PM
Hearing early reports that the first Astral PR upstreaming python-build-standalone changes to CPython has been merged...
If you've ever seen this unguarded symbol error, it's now fixed.
December 23, 2024 at 2:38 PM
If you've ever seen this unguarded symbol error, it's now fixed.
If you've ever seen this "Python.h: No such file or directory" error, it's now fixed.
December 23, 2024 at 2:38 PM
If you've ever seen this "Python.h: No such file or directory" error, it's now fixed.
If you've ever seen this "clang: No such file or directory" error, it's now fixed.
December 23, 2024 at 2:38 PM
If you've ever seen this "clang: No such file or directory" error, it's now fixed.
If you've ever seen this "Compiling with an SDK that doesn't seem to exist" error when building wheels on macOS, it's now fixed.
December 23, 2024 at 2:38 PM
If you've ever seen this "Compiling with an SDK that doesn't seem to exist" error when building wheels on macOS, it's now fixed.
Last week I focused on addressing quirks in python-build-standalone and fixing the common pain points with uv-installed Pythons.
For example: if you've ever run into this tkinter error, it's now fixed.
For example: if you've ever run into this tkinter error, it's now fixed.
December 23, 2024 at 2:38 PM
Last week I focused on addressing quirks in python-build-standalone and fixing the common pain points with uv-installed Pythons.
For example: if you've ever run into this tkinter error, it's now fixed.
For example: if you've ever run into this tkinter error, it's now fixed.
python-build-standalone is now officially part of the Astral organization!
December 17, 2024 at 10:47 PM
python-build-standalone is now officially part of the Astral organization!
uv's resolver now recognizes that certain combinations of markers are impossible, even if the grammar allows them.
For example, sys_platform == "darwin" and platform_system == "Windows" can't be true at the same time.
Lets us do less work by solving fewer combinations.
For example, sys_platform == "darwin" and platform_system == "Windows" can't be true at the same time.
Lets us do less work by solving fewer combinations.
December 15, 2024 at 11:08 PM
uv's resolver now recognizes that certain combinations of markers are impossible, even if the grammar allows them.
For example, sys_platform == "darwin" and platform_system == "Windows" can't be true at the same time.
Lets us do less work by solving fewer combinations.
For example, sys_platform == "darwin" and platform_system == "Windows" can't be true at the same time.
Lets us do less work by solving fewer combinations.
uv has made it into GitHub's default .gitignore
December 9, 2024 at 5:57 PM
uv has made it into GitHub's default .gitignore
It's what makes `uv python install` feel magical. There's no build step!
December 4, 2024 at 2:10 AM
It's what makes `uv python install` feel magical. There's no build step!