Using Rust in Free-Threaded vs Regular Python 3.13 - David Hewitt
Python 3.13's new free-threaded build [https://peps.python.org/pep-0703/] brings the possibility of true parallel execution into Python code for the first time. This brings promise of significant performance opportunity, but not without cost. Parallel execution is notorious for being challenging due to the additional complexity. This implies bugs, and the risk is particularly high for the compiled code powering Python - including the CPython interpreter itself (it's written in C). The main risk comes from data races, which can cause unpredictable and potentially dangerous crashes. The Rust programming language is designed to prevent data races by construction; if your code runs, it should be data race free (unless you misuse unsafe Rust). We'll explore the way that Rust does this, both from the rules of the language, and by the data structures it offers to complement those rules. We'll showcase this with examples of Rust (PyO3) code designed for "regular" Python 3.13 and how it changes to become compatible with the free-threaded build. This will lead onto ideas which we can carry across languages to influence how we write Python (and maybe C/C++) to be correct in a free-threaded world, before closing with some tantalizing examples of software architectures made possible by free-threaded Python. No prior Rust knowledge necessary. What you should hope to take away from this talk: - a basic understanding of how the free-threaded build of Python is different to the regular one, - an appreciation for the complexity of free-threading for compiled code, - how Rust helps you reason about this complexity, and - excitement for the future of free-threaded Python!

Unraveling Community Support For Free-Threaded Python - Lysandros Nikolaou & Nathan Goldbaum

Supercharge your Python library using AST parsing - Adam Glustein

Founder Video: Interface Enhancements

Rust’s most complicated features explained

Metaclasses Demystified - Jason C. McDonald

Rust's Alien Data Types 👽 Box, Rc, Arc

The chaotic locals() and how we fixed it - Tian Gao

High-Performance Python: Faster Type Checking and Free Threaded Execution (Sponsor: Meta)

Protocols vs ABCs in Python - When to Use Which One?

Comprehending Proc Macros

Choosing Between Free Threading and Async — Samet Yaslan

Understanding Rust – Or How to Stop Worrying & Love the Borrow-Checker • Steve Smith • YOW! 2024

How Much FASTER Is Python 3.13 Without the GIL?

They Lied to You About AI (This Study Proves It)

rust is causing a lot of problems...

Async Rust explained in 20 minutes

It finally happened

Python under the Hood - Memory and a Notional Machine

Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025

