9 Punkte von GN⁺ 2024-02-08 | 2 Kommentare | Auf WhatsApp teilen
  • Open-Source-Python-3-Interpreter (CPython >= 3.11.0), geschrieben in Rust
  • Kann in Rust-Programme eingebettet oder zur Ausführung von Python im Webbrowser zu WebAssembly kompiliert werden
  • MIT-Lizenz

Ziele

  • Eine vollständige Python-3-Umgebung ausschließlich in Rust implementieren (ohne CPython-Bindings).
  • Ziel ist eine schnelle, zuverlässige und sichere Python-Implementierung, die in Rust genutzt oder zu WebAssembly kompiliert werden kann

Vorteile von RustPython

  • Es gibt verschiedene Python-Implementierungen, aber RustPython ist für die Programmiersprache Rust gedacht
  • So wie Jython und IronPython jeweils die Integration mit Java und .NET ermöglicht haben, zielt RustPython auf die Integration mit Rust ab
  • Dank der minimalen Runtime von Rust lässt es sich zu WebAssembly kompilieren, sodass Python-Code leicht im Browser ausgeführt werden kann

Installation

Meinung von GN⁺

  • RustPython ist ein Projekt, das einen Python-Interpreter neu implementiert und dabei die Sicherheit und Leistung von Rust nutzt.
  • Im Unterschied zu bestehenden Python-Implementierungen ist es auf Rust-Basis geschrieben, stärkt damit die Integration von Rust und Python und ermöglicht die Ausführung von Python im Web über WebAssembly.
  • Das Projekt befindet sich derzeit in Entwicklung, eröffnet neue Möglichkeiten im Python-Ökosystem und könnte eine interessante Alternative für Entwickler sein, die Rust und Python gemeinsam nutzen möchten.

2 Kommentare

 
cosine20 2024-02-08

Ein interessantes Projekt, aber ich bin mir noch nicht sicher, ob es wirklich so nützlich sein wird.. Wie bereits weiter oben erwähnt wurde, hatten Jython und IronPython am Ende ebenfalls Mühe, mit den CPython-Versionen Schritt zu halten, und wurden dadurch nur noch an sehr begrenzten Stellen zu brauchbaren Optionen. Ich denke, dass RustPython noch einen ziemlich langen Weg vor sich hat, um die Erwartungen zu erfüllen, die andere darin setzen.

 
GN⁺ 2024-02-08
Hacker-News-Kommentare
  • "it can be compiled to WebAssembly in order to run Python in the browser."

    • Ein Nutzer hat einen ähnlichen Ansatz mit CPython und NodeJS gesehen und hält diese Methode für unpraktisch.
    • Python-Code auf einer in WebAssembly (Wasm) kompilierten Laufzeit auszuführen, bedeutet, den Performance-Verlust zweimal in Kauf zu nehmen.
    • Um eine dynamisch typisierte Sprache auf einer Wasm-Laufzeit auszuführen, muss die Sprache direkt zu Wasm kompiliert werden.
    • Das Projekt ist weiterhin cool und nützlich, und obwohl es viel Python-Code gibt, der sich im Browser verwenden lässt, sollte man nicht versuchen, Web-Frameworks auf diese Weise aufzubauen.
    • Es wurden keine Performance-Benchmarks für RustPython durchgeführt, und es wird eingeräumt, dass RustPython einige unbekannte Tricks verwenden könnte.
  • Verwandte Links:

    • RustPython ist ein in Rust geschriebener Python-3-Interpreter, der zu verschiedenen Zeitpunkten auf Hacker News gepostet wurde und unterschiedliche Kommentare erhalten hat.
  • Positive Meinung zu MicroPython:

    • Ein Nutzer erwähnt, dass MicroPython cool ist und auf dem RP2040 läuft.
  • Verschiedene Meinungen zu RustPython:

    • Es gibt einen Nutzer, der glaubt, RustPython sei der Nachfolger von IronPython.
    • Es gibt einen Nutzer, der es großartig findet, dass Python eine gesunde Community von Drittanbieter-Interpretern hat.
    • Es gibt einen Nutzer, der neugierig auf Probleme ist, die die Unterschiede zu CPython sichtbar machen.
    • Es gibt einen Nutzer, der sich über die Fortschritte von RustPython freut und eine Methode teilt, RustPython mit Wasmer auszuführen.
  • Meinungen zu den Grenzen von RustPython:

    • Es gibt einen Nutzer, der nicht sicher ist, ob sich Projekte wie RustPython breit einsetzen lassen.
    • Es wird darauf hingewiesen, dass der Wert von Python in der Schnittstelle zu nativen Bibliotheken liegt und man mit etwas wie PyPy den gesamten Zugang dazu verliert.
  • Kritische Meinungen zu Jython und IronPython:

    • Es gibt einen Nutzer, der behauptet, Jython und IronPython seien es nicht wert, erwähnt zu werden, da sie beim Übergang zu Python 3 gescheitert sind, nachdem Python 2 verschwunden ist.
  • Geteilte Projekterfahrung mit RustPython:

    • Ein Nutzer verwendet RustPython als Interpreter für das Kybra-Projekt, eine Python-Umgebung für das Internet Computer Protocol, und erklärt, dass Wasm die Laufzeitumgebung von ICP ist.
    • Das Fehlen von C-Erweiterungen ist ein Problem, aber es wird erwähnt, dass ein Wechsel zu CPython geplant ist, sobald wasi und die Unterstützung für C-Erweiterungen bereit sind.
  • Vergleich zur Performance von RustPython:

    • Ein Nutzer hat anhand der Berechnung der Fibonacci-Folge festgestellt, dass RustPython etwa 11-mal langsamer als CPython ist, und hat die Ergebnisse geteilt.