PyOxidizer menggunakan Rust untuk menjadikan Python dapat dilaksanakan

Projek baru, ditulis dalam Rust, bertujuan untuk mempermudah mengemas dan mengedarkan aplikasi Python sebagai aplikasi binari mandiri - sesuatu yang telah lama menjadi penderitaan bagi pembangun Python.

PyOxidizer, menurut GitHub README-nya, adalah "koleksi peti Rust yang memfasilitasi pembinaan perpustakaan dan binari yang mengandungi jurubahasa Python." Dengan PyOxidizer, para pembangunnya mendakwa, mungkin untuk membuat aplikasi yang dapat dilaksanakan untuk aplikasi Python yang menyisipkan jurubahasa Python, tanpa pergantungan waktu operasi yang lain.

PyOxidizer memerlukan pemasangan Rust 1.31 atau lebih baik, dan hanya mengemas aplikasi yang ditulis dengan Python 3.7. Untuk menggunakan PyOxidizer, pembangun membuat fail TOML yang menerangkan cara menanam aplikasi Python yang diberikan, kemudian membina dan menjalankan PyOxidizer dengan pemboleh ubah persekitaran yang menunjuk ke fail TOML itu.

PyOxidizer berbeza daripada penyelesaian pembungkusan lain dalam menggunakan binaan khas jurubahasa Python yang direka untuk dihubungkan secara statik dan dimasukkan ke dalam program lain. Penyelesaian lain, seperti PyInstaller, mengagihkan semula stok CPython .DLL yang ada — senang dan serasi, tetapi tidak terlalu fleksibel. PyOxidizer juga mengemas kod bytec untuk aplikasi Python ke dalam gambar yang dapat dilaksanakan dan memuatkannya secara langsung dari memori (cepat), bukan dari sistem fail (lebih lambat).

Seperti PyInstaller, PyOxidizer tidak melakukan pengoptimuman pada kod Python. Projek lain, Nuitka, tidak hanya menyusun aplikasi Python ke eksibel mandiri, tetapi juga berusaha menerapkan pengoptimuman prestasi pada kod yang disusun. Walau bagaimanapun, Nuitka masih dianggap projek peringkat beta, dan banyak peningkatan prestasi yang diunjurkan belum tersedia.

PyOxidizer sendiri masih merupakan projek peringkat awal. Ia hanya dapat menghasilkan binari Linux kerana salah satu projek hulu yang bergantung padanya, versi CPython yang dapat disematkan, kini hanya tersedia dalam binaan Linux.