A versão 0.8.0 da biblioteca e do utilitário de console multiplataforma foi lançada. ZXC (github. com), implementando multithreading de alto desempenho compressão assimétrica Sem perdas e otimizado para ativos de jogos, firmware e pacotes de aplicativos.
Alega-se que é 40% mais rápido que o LZ4 em ARM64, com melhores taxas de compressão.
O projeto foi escrito em C e é distribuído sob a licença BSD 3.
Lista de alterações:
- A versão do formato agora é 5, o que quebra a compatibilidade:
- Implementamos o deslocamento LZ(+1) no nível do formato para eliminar possíveis vetores de ataque de deslocamento zero.
- Os checksums de cabeçalho agora usam o algoritmo Marsaglia xorshift.
- A nova estratégia de hash LZ77 e as otimizações de configuração da tabela hash proporcionam melhorias significativas de desempenho em diversas arquiteturas, especialmente em altos níveis de compressão.
- Melhorias significativas nos níveis de compressão 3 a 5, apresentando aumentos de velocidade de compressão de 33 a 43% nas arquiteturas x86_64 e ARM64.
- Melhorias notáveis nos níveis de compressão mais rápidos (1 e 2), com aumentos de velocidade de 10 a 18% em x86_64 e de aproximadamente 8 a 10% em ARM64.
- O tratamento de erros e os códigos foram reformulados. O wrapper em Python agora fornece acesso a essas constantes de erro em C para oferecer relatórios de erro nativos e aprimorados.
- O tamanho do bloco ZXC_BLOCK_SIZE não está mais limitado a 1 MB. O formato de arquivo ZXC agora suporta oficialmente tamanhos de bloco de até 8 MB.
- Um modo de processamento de múltiplos arquivos foi adicionado ao utilitário de console: a opção -m (ou --multiple) permite processar vários arquivos de entrada com um único comando. Cada arquivo é processado independentemente e os nomes dos arquivos de saída são derivados automaticamente dos arquivos de entrada (por exemplo, file.txt é compactado em file.txt.xc e file.txt.xc é descompactado em file.txt).
- O utilitário de console também possui um modo de processamento recursivo de diretórios: a opção -r (ou --recursive) permite processar todos os arquivos nos diretórios especificados e seus subdiretórios.
- Outras melhorias (documentação, testes) e correções de erros.
- Na versão 0.8.1, apenas a geração da biblioteca dinâmica libzxc.so.1 foi corrigida para preservar a capacidade de usar versões anteriores da biblioteca.
Fonte: linux.org.ru
