The Real Python Podcast

Charlie Marsh: Accelerating Python Tooling With Ruff and uv


Listen Later

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.

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.

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.

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.

This episode is sponsored by Postman.

Course Spotlight: Python Basics: Installing Packages With pip

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.

Topics:

  • 00:00:00 – Introduction
  • 00:03:37 – How did you get involved in open source?
  • 00:07:01 – Fostering a community around a project
  • 00:11:32 – Python tooling could be much, much faster
  • 00:15:45 – Changing the ergonomics of tooling
  • 00:19:59 – What is ruff and what jobs can it do?
  • 00:22:23 – How do you configure ruff?
  • 00:26:02 – Where do the linting rules come from?
  • 00:29:29 – Can you build your own rules?
  • 00:31:28 – Performance difference for ruff
  • 00:36:25 – Installing ruff
  • 00:37:34 – The rustification of Python
  • 00:40:52 – The initial features and release of uv
  • 00:45:07 – Installing Python
  • 00:47:50 – Taking over the python-build-standalone project
  • 00:53:02 – Installation methods and suggestions
  • 00:55:37 – Video Course Spotlight
  • 00:57:07 – The project API
  • 01:01:57 – Inline script metadata and PEP 723
  • 01:06:49 – Installing tools with uvx
  • 01:09:37 – Project management
  • 01:11:20 – Astral as company and VC funding
  • 01:19:23 – New static type checker
  • 01:26:15 – What are you excited about in the world of Python?
  • 01:27:12 – What do you want to learn next?
  • 01:28:52 – How can people follow your work online?
  • 01:29:34 – Thanks and goodbye
  • Show Links:

    • Astral: Next-gen Python tooling
    • Python tooling could be much, much faster
    • Ruff, an extremely fast Python linter - Astral
    • PEP 8 – Style Guide for Python Code
    • FastHTML - Modern web applications in pure Python
    • uv: An extremely fast Python package and project manager, written in Rust.
    • Using Python’s pip to Manage Your Projects’ Dependencies – Tutorial
    • Install and Execute Python Applications Using pipx – Tutorial
    • Python Standalone Builds — python-build-standalone documentation
    • Running scripts - uv
    • Inline script metadata - Python Packaging User Guide
    • marimo - a next-generation Python notebook
    • Episode #230: marimo: Reactive Notebooks and Deployable Web Apps in Python
    • “We’re building a new static type checker for Python, from scratch, in Rust.”
    • Charlie Marsh (@charliermarsh) - X
    • Charlie Marsh (@crmarsh.com) — Bluesky
    • Level up your Python skills with our expert-led courses:

      • Python Basics Exercises: Installing Packages With pip
      • Python Basics: Installing Packages With pip
      • Writing Beautiful Pythonic Code With PEP 8
      • Support the podcast & join our community of Pythonistas

        ...more
        View all episodesView all episodes
        Download on the App Store

        The Real Python PodcastBy Real Python

        • 4.7
        • 4.7
        • 4.7
        • 4.7
        • 4.7

        4.7

        134 ratings


        More shows like The Real Python Podcast

        View all
        Hanselminutes with Scott Hanselman by Scott Hanselman

        Hanselminutes with Scott Hanselman

        378 Listeners

        Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

        Software Engineering Radio - the podcast for professional software developers

        263 Listeners

        The Changelog: Software Development, Open Source by Changelog Media

        The Changelog: Software Development, Open Source

        285 Listeners

        LINUX Unplugged by Jupiter Broadcasting

        LINUX Unplugged

        264 Listeners

        Thoughtworks Technology Podcast by Thoughtworks

        Thoughtworks Technology Podcast

        43 Listeners

        Talk Python To Me by Michael Kennedy

        Talk Python To Me

        584 Listeners

        Software Engineering Daily by Software Engineering Daily

        Software Engineering Daily

        631 Listeners

        Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

        Super Data Science: ML & AI Podcast with Jon Krohn

        296 Listeners

        Python Bytes by Michael Kennedy and Brian Okken

        Python Bytes

        213 Listeners

        Data Engineering Podcast by Tobias Macey

        Data Engineering Podcast

        140 Listeners

        Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

        Syntax - Tasty Web Development Treats

        987 Listeners

        CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

        CoRecursive: Coding Stories

        185 Listeners

        DataFramed by DataCamp

        DataFramed

        267 Listeners

        Practical AI by Practical AI LLC

        Practical AI

        195 Listeners

        The Stack Overflow Podcast by The Stack Overflow Podcast

        The Stack Overflow Podcast

        63 Listeners