Byla vydána verze 0.8.0 knihovny a multiplatformní konzolové utility ZXC (github.com), která implementuje vysoce výkonné vícestupňové asymetrické komprese bez ztrát a optimalizováno pro herní zdroje, firmwary a balíčky aplikací.
Vyhlašuje se o 40 % rychlejší dekomprese než LZ4 na ARM64, s lepšími kompresními poměry.
Projekt je napsán v jazyce C a je distribuován pod licencí BSD 3.
Seznam změn:
- Verze formátu je nyní 5, „zlomová“ kompatibilita:
- Bylo implementováno LZ (+1) posunutí na úrovni formátu pro odstranění potenciálních vektorů útoku s nulovým posunem.
- Kontrolní součty hlaviček nyní používají algoritmus Marsaglia xorshift.
- Nová LZ77 hashovací strategie a optimalizace konfigurace hash tabulek přinášejí významné zvýšení výkonu na různých architekturách, zejména při vysokých úrovních komprese.
- Významná zlepšení pro úrovně komprese 3–5, které demonstrují zvýšení rychlosti komprese o 33–43 % na architekturách x86_64 i ARM64.
- Značná vylepšení pro rychlejší úrovně komprese (1 a 2), se zvýšením rychlosti o 10-18 % na x86_64 a ~8-10 % na ARM64.
- Byla přepracována zpracování a chybové kódy. Python wrapper nyní poskytuje přístup k těmto chybovým konstantám C pro zajištění vylepšeného a nativního hlášení o chybách.
- Velikost ZXC_BLOCK_SIZE již není omezena na 1 MB. Formát souboru ZXC nyní oficiálně podporuje velikosti bloků až 8 MB.
- Do konzolové utility byl přidán režim zpracování více souborů: volba -m (nebo —multiple) umožňuje zpracovávat více vstupních souborů jedním příkazem. Každý soubor je zpracováván nezávisle a názvy výstupních souborů se automaticky generují na základě vstupních (například soubor file.txt je komprimován na file.txt.xc, soubor file.txt.xc je dekomprimován na file.txt).
- Do konzolové utility byl také přidán režim rekurzivního zpracování adresářů: volba -r (nebo —recursive) umožňuje zpracovávat všechny soubory v uvedených adresářích a jejich podadresářích.
- Další vylepšení (dokumentace, testování) a opravy chyb.
- Ve verzi 0.8.1 byla opravená pouze generace dynamické knihovny libzxc.so.1, aby byla zachována možnost používání předchozích verzí knihovny.
Zdroj: linux.org.ru
