Compression zpaqfranz sur macOS Tahoe
Guide pratique pour administrateurs systèmes
zpaqfranz surpasse zip de 20 à 50% en taux de compression tout en offrant déduplication native et sauvegardes incrémentales versionnées. Ce fork activement maintenu du projet zpaq original s'installe via Homebrew et utilise un chiffrement AES-256 de niveau militaire.
Bien entendu, vous pouvez utiliser PeaZip pour macOS, si vous ne souhaitez pas manipuler le Terminal.
Pré-requis : Homebrew doit être installé sur votre Mac.
zpaq ou zpaqfranz : le choix est simple
zpaq original a été développé par Matt Mahoney avec une dernière version 7.15 datant d'août 2016.
Depuis, le projet est abandonné.
zpaqfranz, créé par Franco Corbelli, est un fork à 100% rétrocompatible qui étend les fonctionnalités originales.
- zpaq : Version 7.15, dernière mise à jour août 2016, projet abandonné.
- zpaqfranz : Version 63.6+, activement maintenu, ajout de SHA-256, SHA-3, BLAKE3, accélération matérielle, support SFTP/SSH, optimisations Apple Silicon.
Recommandation : utilisez exclusivement zpaqfranz. Les archives créées restent lisibles par l'ancien zpaq si nécessaire.
Pourquoi zpaqfranz écrase zip, en terme de compression
Benchmarks sur un corpus mixte de 303 Mo (Calgary, Canterbury, Silesia, enwik8) :
- zpaq ultra : 57.6 Mo (ratio 19.0%)
- 7z ultra (LZMA2) : 71.2 Mo (ratio 23.5%)
- zip -9 : ~95 Mo (ratio ~31%)
Déduplication par chunking
Les fichiers sont découpés en fragments de 64 Ko en moyenne via un hash roulant.
Chaque fragment reçoit une empreinte SHA-1 ; les fragments identiques ne sont stockés qu'une fois.
Résultat concret : 107 Go de VMs compressés en 15.8 Go (85% de réduction).
Context mixing
Les niveaux -m3 à -m5 prédisent chaque bit en combinant plusieurs modèles statistiques via un réseau neuronal.
Cette technique atteint les meilleurs taux de compression connus mais au prix d'une lenteur significative.
Installation sur macOS via Homebrew
# Installation recommandée
brew install zpaqfranz
# Vérification
zpaqfranz h | head -5
Sortie attendue :
zpaqfranz v63.6e-NOJIT,-L4,(2025-10-31)
Niveaux de compression disponibles
- -m0 : Stockage + dédup uniquement (~300 Mo/s). Idéal pour données pré-compressées, VMs.
- -m1 : LZ77, niveau par défaut (~100 Mo/s). Recommandé pour sauvegardes quotidiennes.
- -m2 : LZ77 amélioré (~50 Mo/s). Archivage à moyen terme.
- -m3 : BWT (~20 Mo/s). Fichiers texte volumineux.
- -m4 : BWT + context mixing (~10 Mo/s). Compression élevée.
- -m5 : Context mixing complet (~2 Mo/s). Archivage long terme.
(Recommandation sysadmin : utilisez -m1 (c'est la valeur par défaut) pour les sauvegardes et -m0 pour les images VM où la déduplication seule suffit.)
Commandes de compression essentielles
Compresser un fichier unique
zpaqfranz a archive.zpaq /chemin/vers/fichier.log
Compresser un dossier entier
zpaqfranz a backup.zpaq /var/log/
Compression avec niveau spécifique
# Compression rapide (défaut, recommandé)
zpaqfranz a backup.zpaq /data/ -m1
# Compression maximale (très lent)
zpaqfranz a archive.zpaq /data/ -m5
# Déduplication seule, sans compression (idéal pour VMs)
zpaqfranz a vms.zpaq /vmware/ -m0
Multiples sources
zpaqfranz a backup.zpaq /etc/ /var/log/ /home/admin/scripts/
Sortie verbose
zpaqfranz a backup.zpaq /data/ -verbose
Extraction d'archives zpaq
Extraire dans le répertoire courant
zpaqfranz x archive.zpaq
Extraire vers un répertoire spécifique
zpaqfranz x archive.zpaq -to /chemin/destination/
Extraire un fichier spécifique
zpaqfranz x archive.zpaq /etc/nginx/nginx.conf -to /tmp/restored/
Lister le contenu sans extraire
# Liste simple
zpaqfranz l archive.zpaq
# Informations détaillées (versions, taille, stats)
zpaqfranz i archive.zpaq
# Rechercher des fichiers
zpaqfranz l archive.zpaq -find "*.conf"
Forcer l'écrasement
zpaqfranz x archive.zpaq -to /restore/ -force
Chiffrement AES-256 des archives
zpaqfranz utilise AES-256 en mode CTR avec dérivation de clé via Scrypt (N=16384, r=8, p=1). Chaque tentative de brute-force nécessite ~208 millions d'opérations et 16 Mo de RAM, rendant les attaques impraticables.
Créer une archive chiffrée
zpaqfranz a backup_secure.zpaq /data/sensible/ -key MonMotDePasse
Extraire une archive chiffrée
zpaqfranz x backup_secure.zpaq -key MonMotDePasse -to /restore/
Lister et tester une archive chiffrée
zpaqfranz l backup_secure.zpaq -key MonMotDePasse
zpaqfranz t backup_secure.zpaq -key MonMotDePasse
Sécurité renforcée avec keyfile
# Vérifier l'entropie d'un fichier candidat
zpaqfranz work keyfile /chemin/image.jpg
# Créer archive avec mot de passe + keyfile
zpaqfranz a backup.zpaq /data/ -key MotDePasse -keyfile /chemin/keyfile.jpg
(Important : le chiffrement assure la confidentialité mais pas l'authentification — l'archive ne détecte pas les modifications malveillantes.)
Sauvegardes incrémentales versionnées
C'est la fonctionnalité phare de zpaq. Chaque exécution de a (add) crée une nouvelle version/snapshot. Seuls les fichiers modifiés sont ajoutés, avec déduplication au niveau des fragments.
Workflow de sauvegarde quotidienne
# Jour 1 : sauvegarde initiale (version 1)
zpaqfranz a /backup/serveur.zpaq /data/
# Jour 2 : seules les modifications sont ajoutées (version 2)
zpaqfranz a /backup/serveur.zpaq /data/
# Jour N : continue à créer des versions incrémentales
zpaqfranz a /backup/serveur.zpaq /data/
Consulter les versions disponibles
zpaqfranz i serveur.zpaq
Restaurer une version spécifique
# Restaurer la version 3
zpaqfranz x serveur.zpaq -until 3 -to /restore/
# Restaurer à une date précise
zpaqfranz x serveur.zpaq -until 2024/03/15 -to /restore/
Vérification d'intégrité et autres outils
Tester l'intégrité d'une archive
# Test standard (décompresse et vérifie les hashes)
zpaqfranz t archive.zpaq
# Test avec vérification SHA-256
zpaqfranz t archive.zpaq -sha256
# Test paranoid (lent, gourmand en RAM)
zpaqfranz p archive.zpaq
Comparer archive vs système de fichiers
zpaqfranz v archive.zpaq
zpaqfranz sync archive.zpaq /data/original/
Comparer deux répertoires
zpaqfranz c /master/ /replica/
Calculer des hashes
zpaqfranz sum /data/ -sha256
zpaqfranz sum /data/ -blake3 -ssd # Optimisé SSD, multithread
Optimisation multithread
zpaqfranz a backup.zpaq /data/ -threads 8
zpaqfranz t archive.zpaq -ssd # Vérification parallèle optimisée SSD
Aide-mémoire des commandes
- Compresser dossier : zpaqfranz a backup.zpaq /data/
- Compresser chiffré : zpaqfranz a backup.zpaq /data/ -key PWD
- Extraire tout : zpaqfranz x backup.zpaq
- Extraire vers dossier : zpaqfranz x backup.zpaq -to /out/
- Extraire chiffré : zpaqfranz x backup.zpaq -key PWD
- Lister contenu : zpaqfranz l backup.zpaq
- Info archive : zpaqfranz i backup.zpaq
- Tester intégrité : zpaqfranz t backup.zpaq
- Restaurer version 5 : zpaqfranz x backup.zpaq -until 5
- Compression rapide : zpaqfranz a backup.zpaq /data/ -m1
- Compression max : zpaqfranz a backup.zpaq /data/ -m5
- Aide complète : zpaqfranz h h
Conclusion
zpaqfranz s'impose comme l'outil de compression de choix pour les sysadmins confrontés à des volumes importants de données répétitives. Son système de sauvegardes incrémentales versionnées élimine le besoin d'outils tiers comme rsnapshot, tandis que la déduplication native réduit drastiquement l'espace occupé par les VM et conteneurs similaires.
Le compromis principal reste la vitesse de décompression (10 à 100x plus lente que zip aux niveaux élevés). Privilégiez -m0 ou -m1 pour les sauvegardes opérationnelles où la restauration rapide compte. Pour l'archivage long terme où le ratio prime, -m5 délivre des résultats inégalés par les formats conventionnels.
↑ Haut de page