Mehr Rust für CPython: zlib soll auf Rust umgestellt werden
Eine Gruppe um die beiden Python-Core-Entwickler Emma Smith und Kirill Podoprigora will Rust in den Standard-Interpreter CPython bringen, zunächst für einzelne Module der Standardbibliothek. Entsprechend ihres Fahrplans soll Python 3.16 im Oktober 2027 als Erstes eine Rust-Variante des Kompressionsmoduls zlib mitbringen, zunächst aber noch optional: Wer Python ohne Rust bauen will, erhält wie bisher die C-Implementierung. Ab 2029 soll Rust mit Python 3.18 jedoch Pflicht werden.
Den Fahrplan hatte David Hewitt, Maintainer der Rust-Anbindung PyO3, bereits im Juli auf dem Python Language Summit 2026 vorgestellt, dem jährlichen Treffen der Core-Entwickler. In Erweiterungen für Python ist Rust über PyO3 längst verbreitet, neu wäre es in CPython selbst.
Das Projekt Rust for CPython verspricht sich von Rust vor allem Speichersicherheit. Sicherer Rust-Code unterbindet etwa Zugriffe außerhalb des reservierten Speichers und auf bereits freigegebenen Speicher (Use-after-free). Bereits im Vorentwurf vom November 2025 hatte Co-Projektleiterin Emma Smith festgestellt, dass viele dieser Probleme auf solche Fehlerklassen zurückgehen.
Kleines Modul, spürbare Verbesserungen: zlib macht den Anfang
zlib eignet sich laut Hewitt als Einstieg, weil sich trotz des kleinen Umfangs bereits eine spürbare Verbesserung erzielen lasse. Da es mit der Bibliothek zlib-rs eine externe Rust-Abhängigkeit mitbringt, ließe sich auch direkt erproben, wie der Build-Prozess mit Paketen aus Rusts Paketmanager Cargo umgeht. zlib-rs steckt laut Hewitt bereits in Firefox und Cargo selbst und sei auf vielen Plattformen schneller als das klassische zlib.
In Benchmarks eines Prototyps dekomprimierte das Modul laut Projektangaben auf einem Mac mit ARM-Prozessor bis zu sechsmal so schnell, berechnete CRC32-Prüfsummen aber knapp dreimal langsamer.
Für Python 3.16 ist außerdem eine interne Rust-Schnittstelle geplant, mit der Version 3.17 könnten Module wie json und xml folgen. Distributoren, etwa Linux-Distributionen, sollen die Rust-Variante in 3.16 ausprobieren und Probleme mit einzelnen Plattformen früh melden.
Erfolgskriterien und die Sorge um Cargo-Abhängigkeiten
Vorab definierte Erfolgskriterien sollen die Entscheidung erleichtern, ob Rust den experimentellen Status verlässt, ähnlich wie schon beim JIT-Compiler und beim Free-Threading. Das wäre der Fall, wenn eine Mehrheit der aktiven Core-Entwickler offen dafür ist, Funktionen in Rust umzusetzen, wenn CPython-Benchmarks nicht spürbar langsamer sind und Rust alle offiziell unterstützten Plattformen abdeckt, ohne Distributoren zu überfordern. Es wäre unaufrichtig, Rust als dauerhaft optional darzustellen, so Hewitt
Bedenken gibt es bei den Abhängigkeiten. Ein Mitglied des Steering Council, das fünfköpfige Leitungsgremiums von Python, sieht in den vielen Paketen aus Cargo einen Showstopper, weil jede Sicherheitslücke darin neue Python-Releases erzwinge. Hewitt entgegnete, das Team wolle möglichst wenige Abhängigkeiten und deren Quellcode separat mitliefern, sodass sich CPython auch ohne Cargo bauen lasse.
Rust-Pflicht vertagt, PEP für Ende 2026 erwartet
Ursprünglich war Rust bereits für Python 3.16 standardmäßig vorgesehen, nach Einwänden, unter anderem zur Portabilität, verschob das Team diesen Schritt. Ein neuer formaler Vorschlag mit den Erfolgskriterien wird aktuell im Rahmen eines Python Enhancement Proposal (PEP) für Ende 2026 erwartet, worüber dann der Steering Council entscheidet. Neue Funktionen nimmt Python 3.16 laut Release-Plan bis zum 4. Mai 2027 auf.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.