PyOxidizer menggunakan Rust untuk membuat Python dapat dieksekusi

Sebuah proyek baru, yang ditulis dalam Rust, bertujuan untuk mempermudah pengemasan dan pendistribusian aplikasi Python sebagai biner mandiri yang dapat dieksekusi — sesuatu yang telah lama menjadi masalah bagi pengembang Python.

PyOxidizer, menurut GitHub README-nya, adalah "kumpulan peti Rust yang memfasilitasi pembuatan perpustakaan dan biner yang berisi penerjemah Python." Dengan PyOxidizer, klaim pengembangnya, adalah mungkin untuk membangun sebuah aplikasi yang dapat dieksekusi untuk Python yang menyematkan interpreter Python, tanpa ketergantungan waktu proses lainnya.

PyOxidizer membutuhkan instalasi Rust 1.31 atau yang lebih baik, dan hanya mengemas aplikasi yang ditulis dengan Python 3.7. Untuk menggunakan PyOxidizer, pengembang membuat file TOML yang menjelaskan cara menyematkan aplikasi Python tertentu, lalu membangun dan menjalankan PyOxidizer dengan variabel lingkungan yang mengarah ke file TOML tersebut.

PyOxidizer berdiri terpisah dari solusi pengemasan lain dalam menggunakan build kustom interpreter Python yang dirancang untuk ditautkan secara statis dan disematkan ke program lain. Solusi lain, seperti PyInstaller, mendistribusikan ulang stok CPython .DLL yang ada — nyaman dan kompatibel, tetapi tidak terlalu fleksibel. PyOxidizer juga mengemas bytecode untuk aplikasi Python ke dalam gambar yang dapat dieksekusi dan memuatnya langsung dari memori (cepat), bukan dari sistem file (lebih lambat).

Seperti PyInstaller, PyOxidizer tidak melakukan pengoptimalan apa pun pada kode Python. Proyek lain, Nuitka, tidak hanya mengkompilasi aplikasi Python ke executable mandiri, tetapi juga mencoba menerapkan pengoptimalan kinerja ke kode yang dikompilasi. Namun, Nuitka masih dianggap sebagai proyek tingkat beta, dan banyak peningkatan kinerja yang diproyeksikan belum tersedia.

PyOxidizer sendiri masih merupakan proyek tahap yang sangat awal. Itu hanya dapat menghasilkan binari Linux karena salah satu proyek hulu yang bergantung padanya, versi CPython yang dapat disematkan, saat ini hanya tersedia di versi Linux.