#552: Astral joins OpenAI
OpenAI just acquired Astral, the company behind uv, Ruff, and ty. And if your first thought was "wait, is uv toast?", you are not alone. But here's the twist Charlie Marsh shared with me: he thinks they may ship more open source at OpenAI than they ever did at Astral. On this episode, we get into the acquisition, the mixed feelings, the future of your favorite Python tools, and what it's like to build right at the center of the AI universe.
Episode sponsors
Sentry Error Monitoring, Code talkpython26
Talk Python Courses
Links from the show
Guest
Charlie Marsh: github.com
The announcement: astral.sh
OpenAI: openai.com
uv: github.com
ty: github.com
Ruff: github.com
pyx: astral.sh
Codex team: openai.com
Anthropic did something similar by acquiring Bun: www.anthropic.com
Daily Stars Explorer: emanuelef.github.io
Agentic AI Programming for Python: training.talkpython.fm
Python Web Security: OWASP Top 10 with Agentic AI: training.talkpython.fm
Episode #552 deep-dive: talkpython.fm/552
Episode transcripts: talkpython.fm
Theme Song: Developer Rap
🥁 Served in a Flask 🎸: talkpython.fm/flasksong
---== Don't be a stranger ==---
YouTube: youtube.com/@talkpython
Bluesky: @talkpython.fm
Mastodon: @talkpython@fosstodon.org
X.com: @talkpython
Michael on Bluesky: @mkennedy.codes
Michael on Mastodon: @mkennedy@fosstodon.org
Michael on X.com: @mkennedy
Reinventing Python tooling with Rust (Interview)
Charlie Marsh built Ruff (an extremely fast Python linter written in Rust) and uv (an extremely fast Python package manager written in Rust) because he believes great tools can have an outsized impact. He believes it so much, in fact, that he started an entire company that builds next-gen Python tooling.
On this episode, Charlie joins us to tell us all about it: why Python, why Rust, how they make everything so fast, how they’re starting to make money, what other products he’s dreaming up, and more.
Join the discussion
Changelog++ members save 2 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
Depot – 10x faster builds? Yes please. Build faster. Waste less time. Accelerate Docker image builds, and GitHub Actions workflows. Easily integrate with your existing CI provider and dev workflows to save hours of build time.
Featuring:
Charlie Marsh – GitHub, LinkedIn, Mastodon, X
Adam Stacoviak – Website, GitHub, LinkedIn, Mastodon, X
Jerod Santo – Website, GitHub, LinkedIn, Mastodon, X
Show Notes:
Astral
uv on 2025 SO survey
ov
Ruff
pyx
Changelog News Classifieds
Something missing or broken? PRs welcome!
Charlie Marsh: Accelerating Python Tooling With Ruff and uv
<p>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 about his company, Astral, and their tools, uv and Ruff.</p>
<p>Charlie started working on Ruff as a proof of concept, stating that Python tooling could be much faster. He had seen similar gains in JavaScript tools written in Rust. The project started as a speedy linter with a small ruleset. It’s grown to include code formatting and over 800 built-in linting rules.</p>
<p>Last year, the team at Astral started working on a Python package and project manager written in Rust. As a single tool, uv can replace pip, pip-tools, pipx, poetry, pyenv, and more. We discuss how uv can install and manage versions of Python and run scripts without thinking about virtual environments or dependencies.</p>
<p>Charlie talks about growing the team at Astral over the past couple of years. We also discuss the funding model Astral has adopted and sustaining open-source software.</p>
<p>This episode is sponsored by Postman.</p>
<div class="alert alert-primary" role="alert">
<p><strong>Course Spotlight:</strong> <a href="https://realpython.com/courses/python-pip-install/">Python Basics: Installing Packages With pip</a></p>
<p>Python’s standard library includes a whole buffet of useful packages, but sometimes you need to reach for a third-party library. That’s where pip comes in handy. In this video course, you’ll learn how to pip install packages.</p>
</div>
<p>Topics:</p>
<ul>
<li>00:00:00 – Introduction</li>
<li>00:03:37 – How did you get involved in open source?</li>
<li>00:07:01 – Fostering a community around a project</li>
<li>00:11:32 – Python tooling could be much, much faster</li>
<li>00:15:45 – Changing the ergonomics of tooling</li>
<li>00:19:59 – What is ruff and what jobs can it do?</li>
<li>00:22:23 – How do you configure ruff?</li>
<li>00:26:02 – Where do the linting rules come from?</li>
<li>00:29:29 – Can you build your own rules?</li>
<li>00:31:28 – Performance difference for ruff</li>
<li>00:36:25 – Installing ruff</li>
<li>00:37:34 – The rustification of Python</li>
<li>00:40:52 – The initial features and release of uv </li>
<li>00:45:07 – Installing Python</li>
<li>00:47:50 – Taking over the python-build-standalone project</li>
<li>00:53:02 – Installation methods and suggestions</li>
<li>00:55:37 – Video Course Spotlight</li>
<li>00:57:07 – The project API</li>
<li>01:01:57 – Inline script metadata and PEP 723</li>
<li>01:06:49 – Installing tools with uvx</li>
<li>01:09:37 – Project management</li>
<li>01:11:20 – Astral as company and VC funding</li>
<li>01:19:23 – New static type checker </li>
<li>01:26:15 – What are you excited about in the world of Python?</li>
<li>01:27:12 – What do you want to learn next?</li>
<li>01:28:52 – How can people follow your work online?</li>
<li>01:29:34 – Thanks and goodbye</li>
</ul>
<p>Show Links:</p>
<ul>
<li><a href="https://astral.sh/">Astral: Next-gen Python tooling</a></li>
<li><a href="https://notes.crmarsh.com/python-tooling-could-be-much-much-faster">Python tooling could be much, much faster</a></li>
<li><a href="https://astral.sh/ruff">Ruff, an extremely fast Python linter - Astral</a></li>
<li><a href="https://peps.python.org/pep-0008/">PEP 8 – Style Guide for Python Code</a></li>
<li><a href="https://fastht.ml/">FastHTML - Modern web applications in pure Python</a></li>
<li><a href="https://github.com/astral-sh/uv">uv: An extremely fast Python package and project manager, written in Rust.</a></li>
<li><a href="https://realpython.com/what-is-pip/">Using Python’s pip to Manage Your Projects’ Dependencies – Tutorial</a></li>
<li><a href="https://realpython.com/python-pipx/">Install and Execute Python Applications Using pipx – Tutorial</a></li>
<li><a href="https://gregoryszorc.com/docs/python-build-standalone/main/">Python Standalone Builds — python-build-standalone documentation</a></li>
<li><a href="https://docs.astral.sh/uv/guides/scripts/">Running scripts - uv</a></li>
<li><a href="https://packaging.python.org/en/latest/specifications/inline-script-metadata/#inline-script-metadata">Inline script metadata - Python Packaging User Guide</a></li>
<li><a href="https://marimo.io/">marimo - a next-generation Python notebook</a></li>
<li><a href="https://realpython.com/podcasts/rpp/230/">Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python</a></li>
<li><a href="https://bsky.app/profile/crmarsh.com/post/3lgvhzdfrps26">“We’re building a new static type checker for Python, from scratch, in Rust.”</a></li>
<li><a href="https://x.com/charliermarsh">Charlie Marsh (@charliermarsh) - X</a></li>
<li><a href="https://bsky.app/profile/crmarsh.com">Charlie Marsh (@crmarsh.com) — Bluesky</a></li>
</ul>
<p>Level up your Python skills with our expert-led courses:</p>
<ul>
<li><a href="https://realpython.com/courses/basics-exercises-install-packages-with-pip/">Python Basics Exercises: Installing Packages With pip</a></li>
<li><a href="https://realpython.com/courses/python-pip-install/">Python Basics: Installing Packages With pip</a></li>
<li><a href="https://realpython.com/courses/writing-beautiful-python-code-pep-8/">Writing Beautiful Pythonic Code With PEP 8</a></li>
</ul> <p><a rel="payment" href="https://realpython.com/join">Support the podcast & join our community of Pythonistas</a></p>
#453: uv - The Next Evolution in Python Packages?
See the full show notes for this episode on the website at talkpython.fm/453
#400: Ruff - The Fast, Rust-based Python Linter
See the full show notes for this episode on the website at talkpython.fm/400