Se lanzó la versión 0.8.0 de la biblioteca y la utilidad de consola multiplataforma ZXC (github.com), que implementan un alto rendimiento multihilo compresión asimétrica sin pérdidas y optimizada para recursos de juegos, firmware y paquetes de aplicaciones.
Se declara que la descompresión es un 40% más rápida que LZ4 en ARM64, con mejores coeficientes de compresión.
El proyecto está escrito en C y se distribuye bajo la licencia BSD 3.
Lista de cambios:
- La versión del formato ahora es 5, "rompiendo" la compatibilidad:
- Se implementó un desplazamiento LZ (+1) a nivel de formato para eliminar vectores de ataque potenciales con desplazamiento cero.
- Las sumas de verificación de los encabezados ahora utilizan el algoritmo Marsaglia xorshift.
- Nueva estrategia de hash LZ77 y optimización de la configuración de tablas hash que proporcionan un aumento significativo en el rendimiento en diversas arquitecturas, especialmente a altos niveles de compresión.
- Importantes mejoras para los niveles de compresión 3–5, mostrando un aumento en la velocidad de compresión del 33–43 % tanto en arquitecturas x86_64 como en ARM64.
- Mejoras notables para niveles de compresión más rápidos (1 y 2), con un aumento de velocidad del 10-18 % en x86_64 y ~8-10 % en ARM64.
- Se rediseñó el procesamiento y los códigos de error. El envoltorio de Python ahora proporciona acceso a estas constantes de error C para mejorar la informes de errores nativos.
- El tamaño ZXC_BLOCK_SIZE ya no está limitado a 1 MB. El formato de archivo ZXC ahora admite oficialmente tamaños de bloque de hasta 8 MB.
- Se ha añadido un modo de procesamiento de múltiples archivos a la utilidad de consola: la opción -m (o —multiple) permite procesar varios archivos de entrada con un solo comando. Cada archivo se procesa de forma independiente y los nombres de los archivos de salida se generan automáticamente a partir de los de entrada (por ejemplo, el archivo file.txt se comprime en file.txt.xc, el archivo file.txt.xc se descomprime en file.txt).
- También se ha añadido un modo de procesamiento recursivo de directorios a la utilidad de consola: la opción -r (o —recursive) permite procesar todos los archivos en los directorios especificados y sus subdirectorios.
- Otras mejoras (documentación, pruebas) y correcciones de errores.
- En la versión 0.8.1 solo se corrigió la generación de la biblioteca dinámica libzxc.so.1 para mantener la posibilidad de usar versiones anteriores de la biblioteca.
Fuente: linux.org.ru
