Bol 0.8.0 knižnice a multiplatformového konzolového nástroja bol vydaný ZXC (github.com), realizujúce vysokovýkonné multithreadingové asymetrické kompresie bez straty a optimalizované pre herné zdroje, firmvéry a aplikačné balíky.
Deklaruje sa o viac ako 40 % rýchlejšie dekompresia než LZ4 na ARM64 s lepšími kompresnými pomermi.
Projekt je napísaný v jazyku C a je distribuovaný pod licenciou BSD 3.
Zoznam zmien:
- Verzia formátu je teraz 5, ktorá „láme“ kompatibilitu:
- Implementované posunutie LZ (+1) na úrovni formátu na odstránenie potenciálnych vektorov útoku s nulovým posunutím.
- Kontrolné súčty hlavičiek teraz používajú algoritmus Marsaglia xorshift.
- Nová stratégia hashovania LZ77 a optimalizácia konfigurácie hashovacích tabuliek poskytujú významné zvýšenie výkonu na rôznych architektúrach, najmä pri vysokých úrovniach kompresie.
- Významné zlepšenia pre úrovne kompresie 3–5, preukazujúce zvýšenie rýchlosti kompresie o 33–43 % na architektúrach x86_64, ako aj na ARM64.
- Pozoruhodné zlepšenia pre rýchlejšie úrovne kompresie (1 a 2), so zvýšením rýchlosti o 10-18% na x86_64 a ~8-10% na ARM64.
- Prepracované spracovanie a kódy chýb. Python wrapper teraz poskytuje prístup k týmto chybovým konštantám C pre zabezpečenie vylepšenej a natívnej správy chýb.
- Veľkosť ZXC_BLOCK_SIZE už nie je obmedzená na 1 MB. Formát súboru ZXC teraz oficiálne podporuje veľkosti blokov až do 8 MB.
- Do konzolového nástroja bol pridaný režim spracovania viacerých súborov: možnosť -m (alebo —multiple) umožňuje spracovať viac vstupných súborov jedným príkazom. Každý súbor sa spracováva nezávisle, a názvy výstupných súborov sa automaticky generujú z vstupných (napríklad súbor file.txt sa komprimuje na file.txt.xc, súbor file.txt.xc sa dekomprimuje na file.txt).
- Do konzolového nástroja bol tiež pridaný režim rekurzívneho spracovania adresárov: možnosť -r (alebo —recursive) umožňuje spracovať všetky súbory v určených adresároch a ich podadresároch.
- Ďalšie vylepšenia (dokumentácia, testovanie) a opravy chýb.
- V verzii 0.8.1 bola opravená iba generácia dynamickej knižnice libzxc.so.1 na zachovanie možnosti používania predchádzajúcich verzií knižnice.
Zdroj: linux.org.ru
