En version av Nuitka 1.1-projektet är tillgänglig, som utvecklar en kompilator för att översätta Python-skript till en C-representation, som sedan kan kompileras till en körbar fil med hjälp av libpython för maximal kompatibilitet med CPython (med inbyggda CPython-verktyg för att manipulera objekt). Förutsatt full kompatibilitet med nuvarande versioner av Python 2.6, 2.7, 3.3 - 3.10. Jämfört med CPython visar kompilerade skript en 335 % prestandaförbättring i pystone-tester. Projektkoden distribueras under Apache-licensen.
Bland ändringarna i den nya versionen:
- Möjligheterna att ange konfiguration i Yaml-format har utökats.
- Optimering har gjorts relaterade till uteslutningen av oanvända komponenter i standardbiblioteket (zoninfo, concurrent, asyncio, etc.), vilket gjorde det möjligt att minska storleken på de resulterande körbara filerna.
- Lade till stöd för alternativ syntax ("|") i mönstermatchningar baserat på "match"-operatorn som introducerades i Python 3.10.
- Kompatibilitet med jinja2.PackageLoader säkerställs.
- Implementerade möjligheten att ändra storleken på attributet __defaults__.
- Lade till stöd för funktionerna importlib.metadata.distribution, importlib_metadata.distribution, importlib.metadata.metadata och importlib_metadata.metadata.
- Stöd för att inkludera ytterligare binära filer i den körbara huvudfilen har lagts till i kompileringsläget Onefile.
- De kompilerade modulerna implementerar möjligheten att använda funktionen importlib.resources.files.
- Alternativet "--include-package-data" tillåter att ange filmasker, till exempel "--include-package-data=paketnamn=*.txt".
- För macOS har stöd för digital signering av körbara filer implementerats.
- En metod tillhandahålls för plugins för att åsidosätta funktioner för den körbara filen.
- Möjligheterna för anti-bloat-pluginet har utökats, vilket nu kan användas för att minska antalet paket när du använder rich-, pyrect- och pytorch-biblioteken. Möjligheten att använda reguljära uttryck i ersättningsregler har implementerats.
- Regressiva förändringar till följd av betydande optimeringar som implementerades i den senaste versionen har lösts.
Källa: opennet.ru