9 points par GN⁺ 2024-02-08 | 2 commentaires | Partager sur WhatsApp
  • Interpréteur open source de Python 3 (CPython >= 3.11.0) écrit en Rust
  • Peut être embarqué dans des programmes Rust, ou compilé en WebAssembly pour exécuter Python dans le navigateur web
  • Licence MIT

Objectifs

  • Implémenter un environnement Python 3 complet en utilisant uniquement Rust (sans bindings CPython).
  • Viser une implémentation Python rapide, fiable et sûre, utilisable depuis Rust ou compilable en WebAssembly

Atouts de RustPython

  • Il existe diverses implémentations de Python, mais RustPython est pensée pour le langage de programmation Rust
  • De la même manière que Jython et IronPython ont permis l’intégration avec Java et .NET respectivement, RustPython vise l’intégration avec Rust
  • Grâce au runtime minimal de Rust, il peut être compilé en WebAssembly pour exécuter facilement du code Python dans le navigateur

Installation

Avis de GN⁺

  • RustPython est un projet qui réimplémente l’interpréteur Python en tirant parti de la sûreté et des performances de Rust.
  • Contrairement aux implémentations Python existantes, il est écrit sur une base Rust, ce qui renforce l’intégration entre Rust et Python et permet l’exécution de Python sur le web via WebAssembly.
  • Le projet est encore en développement, mais il ouvre de nouvelles possibilités dans l’écosystème Python et peut constituer une alternative intéressante pour les développeurs souhaitant utiliser Rust et Python ensemble.

2 commentaires

 
cosine20 2024-02-08

C’est un projet intéressant, mais je ne sais pas encore s’il sera vraiment si utile que ça.. Comme cela a déjà été mentionné plus haut, Jython et IronPython ont eux aussi fini par peiner à suivre les versions de CPython, au point de ne devenir des options viables que dans des contextes très limités. Je pense donc qu’il reste encore un long chemin à parcourir pour que RustPython réponde à ce que les autres en attendent.

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

    • Un utilisateur a déjà vu une approche similaire avec CPython et NodeJS, et pense que cette méthode n’est pas pratique.
    • Exécuter du code Python sur un runtime compilé en WebAssembly (Wasm) revient à subir une double perte de performance.
    • Pour exécuter un langage à typage dynamique sur un runtime Wasm, le langage doit être compilé directement en Wasm.
    • Le projet reste très cool et utile, et bien qu’il existe beaucoup de code Python exploitable dans le navigateur, il ne faut pas essayer de construire un framework web de cette manière.
    • Il reconnaît ne pas avoir effectué de benchmark de performance sur RustPython, et admet que RustPython pourrait utiliser quelques astuces encore inconnues.
  • Liens associés :

    • RustPython est un interpréteur Python 3 écrit en Rust, déjà publié plusieurs fois sur Hacker News et ayant suscité divers commentaires.
  • Avis positif sur MicroPython :

    • Un utilisateur mentionne que MicroPython est génial et précise qu’il fonctionne sur RP2040.
  • Avis variés sur RustPython :

    • Un utilisateur pense que RustPython est le successeur d’IronPython.
    • Un utilisateur trouve formidable que Python dispose d’une communauté saine d’interpréteurs tiers.
    • Un utilisateur se demande quels sont les problèmes qui mettent en évidence les différences avec CPython.
    • Un utilisateur se réjouit des progrès de RustPython et partage une façon d’exécuter RustPython avec Wasmer.
  • Avis sur les limites de RustPython :

    • Un utilisateur n’est pas certain qu’un projet comme RustPython puisse être largement adopté.
    • Il souligne que la valeur de Python réside dans son interface avec les bibliothèques natives, et qu’en utilisant quelque chose comme PyPy, on perd toute cette accessibilité.
  • Avis critique sur Jython et IronPython :

    • Un utilisateur affirme que maintenant que Python 2 a disparu, Jython et IronPython, qui n’ont pas réussi leur transition vers Python 3, ne méritent même plus d’être mentionnés.
  • Partage d’expérience sur un projet utilisant RustPython :

    • Un utilisateur indique qu’il utilise RustPython comme interpréteur du projet Kybra, un environnement Python pour le protocole Internet Computer, et précise que Wasm est l’environnement d’exécution d’ICP.
    • Il mentionne que l’absence d’extensions C est un problème, mais qu’il prévoit de passer à CPython lorsque le support de wasi et des extensions C sera prêt.
  • Comparaison des performances de RustPython :

    • Un utilisateur dit avoir vérifié que RustPython est environ 11 fois plus lent que CPython en calculant la suite de Fibonacci, et partage les résultats.