den første utgaven av verktøyet , som gjør det mulig å pakke et prosjekt skrevet i Python som en selvstendig kjørbar fil som inkluderer Python-tolkeren og alle nødvendige biblioteker og ressurser. Slike filer kan kjøres i miljøer uten installert Python-verktøy eller uavhengig av hvilke versjoner av Python som er tilgjengelige. PyOxidizer kan også lage statisk sammenkoblede kjørbare filer som ikke er avhengige av systembiblioteker. Prosjektkoden er skrevet i Rust og lisensiert under MPL (Mozilla Public License) 2.0.
Prosjektet er basert på den samme modulen for Rust som gjør det mulig å integrere Python-tolkeren i Rust-programmer for å kjøre Python-skript. PyOxidizer har nå gått utover å være et tillegg for Rust og posisjonerer seg som et tilgjengelig verktøy for en bredere brukergruppe for å lage og distribuere selvstendige Python-pakker. For de som ikke trenger å distribuere applikasjoner som kjørbare filer, gir PyOxidizer muligheter for å generere biblioteker som kan kobles til enhver applikasjon for å integrere Python-tolkeren og det nødvendige settet med utvidelser.
For sluttbrukere gjør distribusjonen av prosjektet som en enkelt kjørbar fil installasjonen betydelig enklere og eliminerer behovet for å håndtere avhengigheter, noe som er relevant for komplekse Python-prosjekter som videoredigerere. For applikasjonsutviklere lar PyOxidizer dem spare tid på å organisere distribusjonen av applikasjonen, uten å måtte bruke ulike verktøy for å lage pakker for forskjellige operativsystemer.
Bruken av de foreslåtte bygningene har også en positiv innvirkning på ytelsen — filer generert med PyOxidizer startes raskere enn ved bruk av system-Python på grunn av at import og definisjon av grunnleggende moduler utelukkes. I PyOxidizer importeres moduler fra minnet — alle innebygde moduler lastes umiddelbart inn i minnet og brukes deretter uten henvisning til disken). I tester reduseres oppstartstiden for applikasjonen ved bruk av PyOxidizer med omtrent halvparten.
Blant eksisterende lignende prosjekter kan nevnes: (dekomprimerer filen til en midlertidig katalog og importerer moduler fra den), (bundet til Windows-plattformen og krever distribusjon av flere filer), (bundet til macOS), (krever egen pakking av avhengigheter), og (lager pakker i zip-format og krever at Python er installert i systemet), (kompilerer kode i stedet for å integrere tolk), (bundet til Windows), (proprietær utvikling uten forklaring av driftsprinsippene).
På nåværende utviklingsstadium har PyOxidizer allerede implementert hovedfunksjonaliteten for å generere kjørbare filer for Windows, macOS og Linux. Når det gjelder tilgjengelige funksjoner, mangler et typisk byggeomgivelse, mulighet for å generere pakker i MSI, DMG og deb/rpm-format, problemer med å pakke prosjekter som inkluderer komplekse utvidelser på C, mangel på kommandoer for å støtte distribusjonen («pyoxidizer add», «pyoxidizer analyze» og «pyoxidizer upgrade»), begrenset støtte for Terminfo og Readline, mangel på støtte for versjoner annet enn Python 3.7, mangel på støtte for ressurskomprimering, og mulighet for krysskompilering.
Kilde: opennet.ru
