Mit Rust schnelle Python-Module schreiben

Python fehlt bei rechenintensiven Aufgaben Performance; Rust liefert schnellen und sicheren Code. Das Beste von beiden zu kombinieren, ist Ziel des Artikels.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 11 Min.
Von
  • Gerhard Völkl
Inhaltsverzeichnis

Wer in Python aufwendige Berechnungen durchführt, für die es keine fertigen Module gibt, kann den betroffenen Algorithmus in ein mit C++ oder C geschriebenes Modul auslagern und kompilieren. Rechenmodule wie NumPy gehen diesen Weg. Man muss sich dabei jedoch um vieles selbst kümmern, was sonst Python erledigt, beispielsweise Referenzzähler und Speicherbelegung.

Eine Alternative ist die Rust-Bibliothek PyO3. Sie erstellt eine komfortable Verbindung zu Rust, der speichersicheren Systemsprache, die mittlerweile in einigen Projekten C und C++ ablöst. Der Artikel gibt Python-Entwicklerinnen und -Entwicklern ohne Rust-Vorkenntnisse die Möglichkeit, die Kombination aus Python, Rust und PyO3 kennenzulernen. Ziel ist es, ein Python-Modul durch ein in Rust geschriebenes und kompiliertes Modul zu ersetzen.

Mehr zum Programmieren mit Python

Rust ist eine systemnahe Programmiersprache, die von C++, Erlang, Haskell und anderen beeinflusst ist. An den vielen geschweiften Klammern ist die Abstammung von C++ und die Verwandtschaft zu Java und C# erkennbar. Rust verwendet eine eigenständige, nahezu automatische Speicherverwaltung ohne Garbage Collection. Es gibt feste Regeln, wer was im Speicher besitzt. Ist ein Speicher ohne Besitzer, gibt Rust den Speicher frei. Dadurch ist ein sicherer Speicherzugriff garantiert.

Das war die Leseprobe unseres heise-Plus-Artikels "Mit Rust schnelle Python-Module schreiben". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.