9 poin oleh GN⁺ 2024-02-08 | 2 komentar | Bagikan ke WhatsApp
  • Interpreter Python 3 (CPython >= 3.11.0) sumber terbuka yang ditulis dengan Rust
  • Dapat disematkan ke dalam program Rust, atau dikompilasi ke WebAssembly untuk menjalankan Python di browser web
  • Lisensi MIT

Tujuan

  • Mengimplementasikan lingkungan Python 3 yang lengkap hanya dengan menggunakan Rust (tanpa binding CPython).
  • Bertujuan menjadi implementasi Python yang cepat, andal, dan aman yang dapat digunakan dari Rust atau dikompilasi ke WebAssembly.

Kelebihan RustPython

  • Ada berbagai implementasi Python, tetapi RustPython ditujukan untuk bahasa pemrograman Rust
  • Seperti Jython dan IronPython yang masing-masing memungkinkan integrasi dengan Java dan .NET, RustPython bertujuan untuk integrasi dengan Rust
  • Berkat runtime Rust yang minimal, proyek ini dapat dikompilasi ke WebAssembly sehingga kode Python dapat dijalankan dengan mudah di browser

Cara instalasi

Opini GN⁺

  • RustPython adalah proyek yang mengimplementasikan ulang interpreter Python dengan memanfaatkan keamanan dan performa Rust.
  • Berbeda dari implementasi Python yang sudah ada, proyek ini ditulis berbasis Rust, memperkuat integrasi antara Rust dan Python serta memungkinkan eksekusi Python di web melalui WebAssembly.
  • Saat ini masih dalam pengembangan, tetapi proyek ini menawarkan kemungkinan baru bagi ekosistem Python dan bisa menjadi alternatif menarik bagi pengembang yang ingin menggunakan Rust dan Python bersama-sama.

2 komentar

 
cosine20 2024-02-08

Ini memang proyek yang menarik, tetapi menurut saya belum tentu akan berguna sampai sejauh itu.. Seperti yang sudah disebutkan sebelumnya, Jython dan IronPython pada akhirnya juga kewalahan mengikuti versi CPython sehingga hanya menjadi opsi yang layak dipakai di tempat yang sangat terbatas; saya rasa jalan yang harus ditempuh RustPython masih cukup panjang untuk bisa memenuhi hal-hal yang diharapkan orang lain darinya.

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

    • Seorang pengguna pernah melihat pendekatan serupa menggunakan CPython dan NodeJS, dan menganggap cara ini tidak praktis.
    • Menjalankan kode Python di atas runtime yang dikompilasi ke WebAssembly (Wasm) berarti mengalami penurunan performa dua kali.
    • Untuk menjalankan bahasa bertipe dinamis di runtime Wasm, bahasanya harus dikompilasi langsung ke Wasm.
    • Proyek ini tetap keren dan berguna, dan meskipun ada banyak kode Python yang bisa dipakai di browser, orang tidak seharusnya mencoba membangun framework web dengan cara seperti ini.
    • Ia belum melakukan benchmark performa terhadap RustPython, dan mengakui bahwa RustPython mungkin menggunakan beberapa trik yang belum ia ketahui.
  • Tautan terkait:

    • RustPython adalah interpreter Python 3 yang ditulis dalam Rust, dan telah beberapa kali diposting di Hacker News serta menerima beragam komentar.
  • Pendapat positif tentang MicroPython:

    • Seorang pengguna menyebut MicroPython keren, dan mengatakan bahwa itu berjalan di RP2040.
  • Berbagai pendapat tentang RustPython:

    • Ada pengguna yang mengira RustPython adalah penerus IronPython.
    • Ada pengguna yang menganggap keren bahwa Python memiliki komunitas interpreter pihak ketiga yang sehat.
    • Ada pengguna yang penasaran dengan masalah-masalah yang memperlihatkan perbedaan dibanding CPython.
    • Ada pengguna yang menyatakan senang melihat kemajuan RustPython, dan membagikan cara menjalankan RustPython menggunakan Wasmer.
  • Pendapat tentang keterbatasan RustPython:

    • Ada pengguna yang tidak yakin apakah proyek seperti RustPython bisa diterapkan secara luas.
    • Ia menunjukkan bahwa nilai Python terletak pada antarmukanya dengan library native, dan bahwa menggunakan sesuatu seperti PyPy membuat semua akses tersebut hilang.
  • Pendapat kritis tentang Jython dan IronPython:

    • Ada pengguna yang berpendapat bahwa setelah Python 2 menghilang, Jython dan IronPython yang gagal beralih ke Python 3 tidak lagi layak disebut.
  • Berbagi pengalaman proyek yang menggunakan RustPython:

    • Seorang pengguna mengatakan bahwa mereka memakai RustPython sebagai interpreter untuk proyek Kybra, yaitu lingkungan Python untuk Internet Computer Protocol, dan menjelaskan bahwa Wasm adalah lingkungan runtime ICP.
    • Ia menyebut absennya ekstensi C sebagai masalah, tetapi berencana pindah ke CPython ketika dukungan wasi dan ekstensi C sudah siap.
  • Perbandingan performa RustPython:

    • Seorang pengguna membagikan hasil bahwa RustPython sekitar 11 kali lebih lambat daripada CPython berdasarkan perhitungan deret Fibonacci.