- Projetada para resolver os gargalos de desempenho de leitura na entrega de conteúdo e em sistemas embarcados
- Adequada para uma estrutura de compactar uma vez e descompactar muitas vezes (Read-Many), em que o encoder assume a complexidade e o decoder maximiza a taxa de processamento
- Em comparação com o LZ4, oferece mais de 40% de ganho na velocidade de decodificação (Apple Silicon), mais de 20% de ganho (Google Axion, chip ARM para nuvem) e mais de 5% de ganho também em x86_64
- Foi oficialmente integrada ao branch master do lzbench, permitindo agora verificação independente por benchmark padrão
- Design centrado em eficiência assimétrica (Asymmetric Efficiency) para resolver o problema de compromisso entre a velocidade simétrica (LZ4) e a eficiência de compressão (Zstd) dos codecs existentes
- O encoder gera um bitstream ajustado à arquitetura da CPU (especialmente ARMv8) para otimização do pipeline de instruções e da predição de desvios
- O decoder é simplificado para maximizar a taxa de processamento em tempo de execução
- Benchmarks:
- No Apple M2, o ZXC alcança até 1,9x mais rapidez na decodificação que o LZ4 e 2,7x mais throughput que o Zstd
- No Google Axion (ARM Neoverse V2), mantém velocidade de descompressão 1,6~2,5x mais rápida
- Em ambiente x86_64 (AMD EPYC), também entrega até 2,2x mais desempenho de decodificação
- Composto por 5 níveis de compressão
- Level 1–2 (rápido): para assets em tempo real, como jogos/UI, com carregamento cerca de 40% mais rápido que LZ4
- Level 3–4 (equilíbrio): equilíbrio entre velocidade e taxa de compressão
- Level 5 (compacto): para firmware e sistemas embarcados, mais rápido que Zstd e com taxa de compressão superior ao LZ4
- Suporte a API e CLI
- CLI: fornece comandos para compressão manual de assets e benchmark (
zxc -z, zxc -d, zxc -b)
- API: oferece uma API totalmente thread-safe (stateless) e amigável para bindings
- Streaming API: suporta processamento paralelo de arquivos grandes, incluindo detecção automática de threads e verificação de checksum
- Projetada com estrutura Sans-IO, permitindo implementar diretamente drivers de I/O por linguagem (com base em
zxc_sans_io.h)
- Garantia de qualidade e estabilidade
- Fuzzing contínuo (ClusterFuzzLite)
- Análise estática (CPPChecker, Clang)
- Validação dinâmica (Valgrind, ASan/UBSan)
- Estrutura de API segura que exige definição explícita da capacidade do buffer em todas as operações
- Licença BSD 3-Clause
Ainda não há comentários.