Language Summit

CPython: Rust soll ab Python 3.16 optional einziehen

Das Projekt Rust for CPython stellt seinen Zeitplan vor. Erster Kandidat ist das zlib-Modul, Pflicht würde Rust frühestens mit Python 3.18 im Jahr 2029.

CPython: Rust soll ab Python 3.16 optional einziehen
Bildquelle: Shutterstock/DANIEL CONSTANTE

Auf dem diesjährigen Python Language Summit der Core-Entwickler hat Softwareentwickler David Hewitt einen Zeitplan vorgestellt, wie Rust Teil des CPython-Projekts werden könnte. Darüber berichtet Seth Larson, Security Developer-in-Residence der Python Software Foundation, im offiziellen Python-Blog. Hewitt hatte das Thema bereits auf der PyCon US 2025 eingebracht.

„Letztes Jahr hat niemand gesagt: ‚Macht das nicht‘.“

David Hewitt, Softwareentwickler

Hewitt tritt als Botschafter des Projekts Rust for CPython auf. Geleitet wird es von den Core-Entwicklern Kirill Podoprigora und Emma Smith, die einen Entwurf für ein Python Enhancement Proposal (PEP) verfasst haben. Zum Team gehören rund 60 Entwickler, darunter einige Python-Core-Entwickler und eine Delegation des Rust-Projekts. Mitglieder haben zuvor an der Integration von Rust in Android und den Linux-Kernel mitgearbeitet.

Mehr Absturzfehler in CPython

Als Begründung verwies Hewitt darauf, dass die Zahl der Issues mit dem Label „type-crash“ im CPython-Repository stetig steigt. Bei Android habe die Einführung von Rust laut Jeff Vander Stoep dazu geführt, dass Patches gleicher Größe weniger Überarbeitungen benötigten.

Optional ab 2027, Pflicht frühestens 2029

Erster Rust-Code soll mit Python 3.16 im Oktober 2027 ausgeliefert werden, vollständig optional und mit dem bisherigen C-Code als Rückfalllösung. Frühestens mit Python 3.18 im Jahr 2029 würde Rust für das Kompilieren von CPython vorausgesetzt.

Als Hürde galt bislang die Plattformunterstützung. CPython unterstützt offiziell 20 Architekturen und Plattformen in den Stufen Tier 1 bis 3. Laut Hewitt hat Rust seine Unterstützung seit dem vergangenen Jahr ausgeweitet. Python-Distributoren sollen die optionale Rust-Unterstützung in Python 3.16 testen und plattformspezifische Probleme melden, damit diese bis Python 3.17 im Oktober 2028 behoben werden können.

zlib als erstes Modul

Als erstes Modul mit optionaler Rust-Implementierung hat das Team zlib ausgewählt. Grundlage ist die Bibliothek zlib-rs, die unter anderem in Firefox, dem Paketmanager uv und Cargo eingesetzt wird und laut Team auf vielen Plattformen schneller ist als zlib und zlib-ng. Da der Kompressionsalgorithmus von Pythons Paketverwaltung breit genutzt wird, würde sich laut Team bei Annahme des Vorschlags nahezu jede Installation mit pip in Python 3.16 beschleunigen. Über den PEP-Entwurf ist noch nicht entschieden.

(red)