prvi izdanak alata , koji omogućava pakovanje projekta napisanog u Pythonu u oblik samostalne izvršne datoteke, koja uključuje Python interpreter i sve potrebne biblioteke i resurse. Takve datoteke mogu se izvršavati u okruženjima bez instaliranog Python alata ili nezavisno od dostupnosti odgovarajuće verzije Pythona. PyOxidizer takođe može formirati statički povezane izvršne datoteke koje nisu vezane za sistemske biblioteke. Kod projekta je napisan na jeziku Rust i pod MPL licencom (Mozilla Public License) 2.0.
Projekt se temelji na istoimenom modulu za jezik Rust, koji omogućava ugrađivanje Python interpreter-a u Rust programe radi pokretanja Python skripti. PyOxidizer je sada prešao granice dodatka za Rust i pozicionira se kao alat dostupniji široj publici za formiranje i distribuciju samostalnih paketa sa Python-om. Za one kojima nije potrebno distribuirati aplikacije u obliku izvršne datoteke, PyOxidizer pruža mogućnosti za generisanje biblioteka koje se mogu povezivati sa bilo kojim aplikacijama za ugrađivanje Python interpreter-a i potrebnog skupa ekstenzija.
Za krajnje korisnike, isporuka projekta u obliku jedne izvršne datoteke značajno olakšava instalaciju i eliminiše potrebu za radom na usklađivanju zavisnosti, što je posebno važno za kompleksne projekte na Python-u, kao što su video editori. Za programere aplikacija, PyOxidizer omogućava uštedu vremena na organizaciji isporuke aplikacije, bez potrebe za korišćenjem različitih alata za formiranje paketa za različite operativne sisteme.
Korišćenje predloženih izdanja pozitivno utiče i na performanse — datoteke generisane u PyOxidizer-u pokreću se brže nego pri korišćenju sistemskog Pythona zbog izostavljanja uvoza i određivanja osnovnih modula. U PyOxidizer-u moduli se uvoze iz memorije — svi ugrađeni moduli se odmah učitavaju u memoriju i kasnije se koriste bez pristupa disku. U testovima, vreme pokretanja aplikacije korišćenjem PyOxidizer-a se smanjuje otprilike dvostruko.
Od već postojećih sličnih projekata može se istaknuti: (raspakovava fajl u privremeni katalog i unosi module iz njega), (vezana za Windows platformu i zahteva distribuciju više datoteka), (vezana za macOS), (zahteva posebno pakovanje zavisnosti), in (formira paket u zip formatu i zahteva prisustvo Pythona u sistemu), (kompajlira kod, a ne ugrađuje interpreter), (vezana za Windows), (proprietarna razvojna verzija bez objašnjenja principa rada).
U trenutnoj fazi razvoja, PyOxidizer već ima osnovnu funkcionalnost za generisanje izvršnih datoteka za Windows, macOS i Linux. Od trenutnih nedostupnih mogućnosti, nedostatak standardnog okruženja za izgradnju, nemogućnost generisanja paketa u formatima MSI, DMG i deb/rpm, problemi sa pakovanjem projekata koji uključuju složene ekstenzije na C jeziku, nedostatak komandi za podršku isporuci ("pyoxidizer add", "pyoxidizer analyze" i "pyoxidizer upgrade"), ograničena podrška za Terminfo i Readline, nedostatak podrške za verzije osim Python 3.7, nedostatak podrške za kompresiju resursa, nemogućnost cross-kompilacije.
Izvor: opennet.ru
