- Diseñada para resolver los cuellos de botella de rendimiento de lectura en la entrega de contenido y los sistemas embebidos
- Adaptada a una estructura de comprimir una vez y descomprimir muchas veces (Read-Many), donde el codificador asume la complejidad y el decodificador asegura el máximo rendimiento
- Frente a LZ4, mejora la velocidad de decodificación en más de 40% (Apple Silicon), más de 20% (Google Axion, chip ARM para la nube) y más de 5% en x86_64
- Integrada oficialmente en la rama maestra de lzbench, por lo que ahora puede verificarse de forma independiente como benchmark estándar
- Diseño centrado en la eficiencia asimétrica (Asymmetric Efficiency) para resolver el problema de compromiso entre la velocidad simétrica (LZ4) y la eficiencia de compresión (Zstd) de los códecs existentes
- El codificador genera un bitstream adaptado a la arquitectura de CPU, especialmente ARMv8, para optimizar la pipeline de instrucciones y la predicción de saltos
- El decodificador se simplifica para maximizar el rendimiento en tiempo de ejecución
- Benchmarks:
- En Apple M2, ZXC ofrece una decodificación hasta 1.9 veces más rápida que LZ4 y un rendimiento 2.7 veces mayor que Zstd
- En Google Axion (ARM Neoverse V2) mantiene una velocidad de descompresión 1.6 a 2.5 veces más rápida
- En entornos x86_64 (AMD EPYC) también logra una decodificación hasta 2.2 veces más rápida
- Consta de 5 niveles de compresión
- Level 1–2 (rápido): para assets en tiempo real como juegos/UI, con carga aproximadamente 40% más rápida que LZ4
- Level 3–4 (equilibrado): balance entre velocidad y tasa de compresión
- Level 5 (compacto): para firmware y sistemas embebidos, más rápido que Zstd y con mejor tasa de compresión que LZ4
- Compatibilidad con API y CLI
- CLI: ofrece comandos para compresión manual de assets y benchmarks (
zxc -z, zxc -d, zxc -b)
- API: ofrece una API completamente thread-safe (stateless), amigable para bindings
- Streaming API: admite procesamiento paralelo de archivos grandes, con detección automática de hilos y verificación de checksum
- Diseñada con una estructura Sans-IO, lo que permite implementar directamente drivers de I/O por lenguaje (basada en
zxc_sans_io.h)
- Garantía de calidad y estabilidad
- Fuzzing continuo (ClusterFuzzLite)
- Análisis estático (CPPChecker, Clang)
- Verificación dinámica (Valgrind, ASan/UBSan)
- Estructura de API segura que exige especificar explícitamente la capacidad del búfer en todas las operaciones
- Licencia BSD 3-Clause
Aún no hay comentarios.