Skip to content

75: Open-sourcing Pyrefly - A faster Python type checker written in Rust

May 15, 2025 · 32 min

Show notes

Pyrefly is a faster, open-source Python type checker written in Rust, succeeding Pyre. But what prompted the rewrite and what besides the language choice ended up making it faster? Host Pascal talks to Maggie, Rebecca and returning guest Neil about the unexpected complexities of building an incremental type checker that scales to mono repositories in episode 75.

Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/.

Links

Timestamps

  • Intro 0:06

  • Rebecca Introduction 1:45

  • Maggie Introduction 2:45

  • Neil (Re-)Introduction 3:12

  • Team Mission 3:56

  • History of Typing in Python 4:29

  • The State of Typed Python at Meta 5:32

  • fbcode 6:02

  • Original Motivation for building Pyre 6:19

  • Justifying the Rewrite 7:48

  • Pyrefly vs the Rest 9:41

  • Why Rust? 10:45

  • Fearless Concurrency 12:02

  • Why is it faster? 12:37

  • Python community and Rust 14:57

  • Pyrefly wasm crate 15:46

  • Upgrade experience 17:34

  • Type checking differences 19:12

  • IDE experience 21:31

  • State of Pyrefly at Meta 22:27

  • Being open-source-first 23:36

  • Open-source challenges 25:06

  • Unexpected challenges 26:39

  • Outro 31:05

All episodes of Meta Tech Podcast

Settings

Display

Language

Decides which stations you see first on the home page.

History

Recently played stations and episodes and your latest searches are only stored in this browser.

Notifications

A short notice when a podcast you follow has a new episode. Turn off single podcasts with the bell on their page.

Account

Save favorites – in the app and on the website.

Keyboard shortcuts

/
Open search
Space
Play or pause
← →
In the player: back 15 s, forward 30 s (episodes) · in a row: next tile
↑ ↓
In a row: target within the tile
Home / End
In a row: first or last tile
Esc
Close window or menu
?
This overview
Now playing

Go to station page

Play next

    Add episodes with “Play next” – they play after the current episode.