La version 0.8.0 de la bibliothèque et de l'utilitaire de console multiplateforme a été publiée. ZXC (github.com), implémentant une architecture multithread haute performance compression asymétrique Sans perte et optimisé pour les ressources de jeu, les firmwares et les packages d'applications.
Il serait plus de 40 % plus rapide que LZ4 sur ARM64, avec de meilleurs taux de compression.
Ce projet est écrit en C et est distribué sous la licence BSD 3.
Liste des modifications:
- La version du format est désormais la 5, ce qui entraîne une rupture de compatibilité :
- Mise en œuvre d'un décalage LZ(+1) au niveau du format pour éliminer les vecteurs d'attaque potentiels par décalage nul.
- Les sommes de contrôle d'en-tête utilisent désormais l'algorithme Marsaglia xorshift.
- La nouvelle stratégie de hachage LZ77 et les optimisations de configuration de la table de hachage offrent des améliorations significatives des performances sur diverses architectures, notamment à des niveaux de compression élevés.
- Améliorations significatives pour les niveaux de compression 3 à 5, montrant des augmentations de vitesse de compression de 33 à 43 % sur les architectures x86_64 et ARM64.
- Améliorations notables pour les niveaux de compression les plus rapides (1 et 2), avec des augmentations de vitesse de 10 à 18 % sur x86_64 et d'environ 8 à 10 % sur ARM64.
- La gestion des erreurs et le code ont été entièrement revus. L'interface Python permet désormais d'accéder à ces constantes d'erreur C afin d'améliorer la gestion native des erreurs.
- La taille des blocs ZXC (ZXC_BLOCK_SIZE) n'est plus limitée à 1 Mo. Le format de fichier ZXC prend désormais officiellement en charge des tailles de blocs allant jusqu'à 8 Mo.
- Un mode de traitement multifichier a été ajouté à l'utilitaire de console : l'option -m (ou --multiple) permet de traiter plusieurs fichiers d'entrée avec une seule commande. Chaque fichier est traité indépendamment et les noms des fichiers de sortie sont automatiquement dérivés des fichiers d'entrée (par exemple, fichier.txt est compressé en fichier.txt.xc, et fichier.txt.xc est décompressé en fichier.txt).
- L'utilitaire de console dispose également d'un mode de traitement récursif des répertoires : l'option -r (ou --recursive) vous permet de traiter tous les fichiers des répertoires spécifiés et de leurs sous-répertoires.
- Autres améliorations (documentation, tests) et corrections de bugs.
- Dans la version 0.8.1, seule la génération de la bibliothèque dynamique libzxc.so.1 a été corrigée afin de préserver la possibilité d'utiliser les versions précédentes de la bibliothèque.
Source: linux.org.ru
