9 pontos por GN⁺ 2024-02-08 | 2 comentários | Compartilhar no WhatsApp
  • Interpretador open source de Python 3 (CPython >= 3.11.0) escrito em Rust
  • Pode ser embutido em programas Rust ou compilado para WebAssembly para executar Python no navegador
  • Licença MIT

Objetivos

  • Implementar um ambiente completo de Python 3 usando apenas Rust (sem bindings do CPython).
  • O objetivo é ser uma implementação de Python rápida, confiável e segura, utilizável em Rust ou compilável para WebAssembly

Vantagens do RustPython

  • Existem várias implementações de Python, mas o RustPython é voltado para a linguagem de programação Rust
  • Assim como Jython e IronPython possibilitaram integração com Java e .NET, respectivamente, o RustPython busca integração com Rust
  • Graças ao runtime mínimo do Rust, é possível compilar para WebAssembly e executar código Python com facilidade no navegador

Como instalar

Opinião do GN⁺

  • RustPython é um projeto que reimplementa o interpretador Python aproveitando a segurança e o desempenho do Rust.
  • Diferentemente das implementações tradicionais de Python, ele é escrito com base em Rust, reforçando a integração entre Rust e Python e permitindo a execução de Python na web por meio de WebAssembly.
  • Atualmente é um projeto em desenvolvimento que apresenta novas possibilidades para o ecossistema Python e pode ser uma alternativa interessante para desenvolvedores que querem usar Rust e Python em conjunto.

2 comentários

 
cosine20 2024-02-08

É um projeto interessante, mas, na minha opinião, ainda não sei se será tão útil assim.. Como já foi mencionado antes, Jython e IronPython também acabaram tendo dificuldade para acompanhar as versões do CPython e se tornaram opções viáveis apenas em contextos bem limitados, então acho que ainda há um longo caminho pela frente para atender ao que outras pessoas esperam do RustPython.

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

    • Um usuário viu uma abordagem semelhante usando CPython e NodeJS e acha que esse método não é prático.
    • Executar código Python sobre um runtime compilado para WebAssembly (Wasm) faz a performance sofrer duas vezes.
    • Para rodar uma linguagem de tipagem dinâmica em um runtime Wasm, a linguagem precisa ser compilada diretamente para Wasm.
    • O projeto continua sendo legal e útil, e embora exista bastante código Python que pode ser usado no navegador, não se deveria tentar construir um framework web dessa forma.
    • A pessoa admite que não fez benchmarks de performance do RustPython e que o RustPython pode usar alguns truques ainda desconhecidos.
  • Links relacionados:

    • RustPython é um interpretador Python 3 escrito em Rust, já publicado várias vezes no Hacker News e que recebeu comentários diversos.
  • Opinião positiva sobre o MicroPython:

    • Um usuário menciona que o MicroPython é muito legal e diz que ele roda no RP2040.
  • Opiniões variadas sobre o RustPython:

    • Há quem ache que o RustPython é o sucessor do IronPython.
    • Há quem considere legal que Python tenha uma comunidade saudável de interpretadores de terceiros.
    • Há quem tenha curiosidade sobre os problemas que revelam as diferenças em relação ao CPython.
    • Um usuário expressa satisfação com o progresso do RustPython e compartilha uma forma de executar RustPython usando Wasmer.
  • Opiniões sobre as limitações do RustPython:

    • Um usuário não tem certeza se projetos como o RustPython poderão ser amplamente adotados.
    • A pessoa aponta que o valor do Python está na interface com bibliotecas nativas, e que ao usar algo como PyPy perde-se todo esse acesso.
  • Opiniões críticas sobre Jython e IronPython:

    • Um usuário afirma que, agora que o Python 2 desapareceu, Jython e IronPython, que fracassaram na transição para Python 3, não merecem sequer ser mencionados.
  • Compartilhamento de experiência com projetos usando RustPython:

    • Um usuário diz que está usando RustPython como interpretador do projeto Kybra, um ambiente Python para o Internet Computer Protocol, e informa que Wasm é o ambiente de runtime do ICP.
    • Menciona que a ausência de extensões C é um problema, mas que pretende migrar para CPython quando houver suporte a wasi e extensões C.
  • Comparação de performance do RustPython:

    • Um usuário verificou, calculando a sequência de Fibonacci, que o RustPython é cerca de 11 vezes mais lento que o CPython, e compartilhou o resultado.