9 puntos por GN⁺ 2024-02-08 | 2 comentarios | Compartir por WhatsApp
  • Intérprete open source de Python 3 (CPython >= 3.11.0) escrito en Rust
  • Se puede incrustar para usarlo dentro de programas en Rust, o compilarse a WebAssembly para ejecutar Python en el navegador web
  • Licencia MIT

Objetivos

  • Implementar un entorno completo de Python 3 usando únicamente Rust (sin bindings de CPython).
  • Apunta a ser una implementación de Python rápida, confiable y segura, que pueda usarse desde Rust o compilarse a WebAssembly

Ventajas de RustPython

  • Existen varias implementaciones de Python, pero RustPython está pensado para el lenguaje de programación Rust
  • Así como Jython e IronPython hicieron posible la integración con Java y .NET respectivamente, RustPython busca la integración con Rust
  • Gracias al runtime mínimo de Rust, puede compilarse a WebAssembly para ejecutar código Python fácilmente en el navegador

Cómo instalarlo

Opinión de GN⁺

  • RustPython es un proyecto que reimplementa el intérprete de Python aprovechando la seguridad y el rendimiento de Rust.
  • A diferencia de otras implementaciones existentes de Python, está escrito sobre Rust, lo que refuerza la integración entre Rust y Python y permite ejecutar Python en la web mediante WebAssembly.
  • Actualmente es un proyecto en desarrollo que abre nuevas posibilidades dentro del ecosistema de Python y puede ser una alternativa interesante para desarrolladores que quieran usar Rust y Python en conjunto.

2 comentarios

 
cosine20 2024-02-08

Es un proyecto interesante, pero todavía no estoy seguro de que sea tan útil... Como ya se mencionó antes, Jython e IronPython también terminaron teniendo dificultades para seguirle el ritmo a las versiones de CPython y acabaron siendo opciones útiles solo en casos muy limitados, así que creo que aún le queda bastante camino por recorrer a RustPython para satisfacer lo que otras personas esperan de él.

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

    • Un usuario vio un enfoque similar usando CPython y NodeJS, y considera que esta forma no es práctica.
    • Ejecutar código Python sobre un runtime compilado a WebAssembly (Wasm) implica sufrir una doble penalización de rendimiento.
    • Para ejecutar un lenguaje de tipado dinámico en un runtime de Wasm, el lenguaje tendría que compilarse directamente a Wasm.
    • El proyecto sigue siendo genial y útil, y aunque hay mucho código Python que puede usarse en el navegador, no se debería intentar construir un framework web de esta manera.
    • No realizó benchmarks de rendimiento sobre RustPython, y reconoce que RustPython podría usar algunos trucos que no conoce.
  • Enlaces relacionados:

    • RustPython es un intérprete de Python 3 escrito en Rust, publicado varias veces en Hacker News y con comentarios variados.
  • Opinión positiva sobre MicroPython:

    • Un usuario menciona que MicroPython es genial y comenta que corre en RP2040.
  • Opiniones diversas sobre RustPython:

    • Hay quien piensa que RustPython es el sucesor de IronPython.
    • Hay quien considera genial que Python tenga una comunidad saludable de intérpretes de terceros.
    • Hay usuarios que tienen curiosidad por los problemas que dejan ver las diferencias con CPython.
    • Algunos expresan alegría por el progreso de RustPython y comparten cómo ejecutarlo con Wasmer.
  • Opiniones sobre las limitaciones de RustPython:

    • Hay usuarios que no están seguros de que proyectos como RustPython puedan adoptarse ampliamente.
    • Señalan que el valor de Python está en su interfaz con bibliotecas nativas, y que al usar algo como PyPy se pierde todo ese acceso.
  • Opiniones críticas sobre Jython e IronPython:

    • Hay quien sostiene que, ahora que Python 2 desapareció, Jython e IronPython no merecen mención porque fracasaron en la transición a Python 3.
  • Experiencia compartida de un proyecto que usa RustPython:

    • Un usuario comenta que usa RustPython como intérprete en el proyecto Kybra, un entorno de Python para el Internet Computer Protocol, y aclara que Wasm es el entorno de ejecución de ICP.
    • Menciona que la falta de extensiones en C es un problema, pero que planea migrar a CPython cuando estén listos wasi y el soporte para extensiones en C.
  • Comparación sobre el rendimiento de RustPython:

    • Un usuario comprobó, calculando la secuencia de Fibonacci, que RustPython es unas 11 veces más lento que CPython, y compartió los resultados.