gzip, bzip2, xz, zstd, LZ4, Brotli : quel algorithme de compression choisir
Vitesse, taux de compression, usage web ou ligne de commande : ce qui distingue ces six algorithmes de compression mono-fichier, et lequel choisir selon la contrainte dominante.
Contrairement au ZIP, au RAR ou au 7Z, ces six algorithmes ne regroupent pas plusieurs fichiers dans un conteneur : chacun compresse un seul flux de données. C’est pourquoi ils sont presque toujours associés à un autre outil qui assemble d’abord les fichiers, le plus souvent tar, d’où les extensions .tar.gz, .tar.bz2, .tar.xz ou .tar.zst (le TGZ n’est qu’un raccourci d’extension pour .tar.gz, identique en contenu). Le choix entre ces algorithmes revient donc à un arbitrage entre vitesse et taux de compression, pas à une question de compatibilité de conteneur.
| Algorithme | Origine | Taux de compression | Vitesse | Usage typique |
|---|---|---|---|---|
| gzip | 1992, DEFLATE | Modeste | Rapide dans les deux sens | Compression HTTP, standard Unix universel |
| bzip2 | 1996, transformée de Burrows-Wheeler | Bonne | Décompression lente | De moins en moins choisi pour de nouvelles données |
| xz | 2009, LZMA2 | Très élevé | Compression lente, décompression correcte | Archivage, paquets logiciels, noyau Linux |
| zstd | 2016 (Facebook/Meta), RFC 8878 | Réglable, très bon | Rapide dans les deux sens à tous les niveaux | Remplacement moderne de gzip et xz |
| LZ4 | 2011 | Faible | Extrêmement rapide | Temps réel, bases de données, systèmes de fichiers |
| Brotli | 2013 (Google), RFC 7932 | Meilleur que gzip | Proche de gzip en décompression | Compression HTTP des pages web |
Le gzip, spécifié par la RFC 1952, repose sur l’algorithme DEFLATE (LZ77 + Huffman). Son taux de compression est modeste comparé aux algorithmes plus récents, mais sa décompression rapide et son support quasi universel (y compris via l’en-tête HTTP Content-Encoding: gzip) en font toujours le format de repli le plus sûr quand la compatibilité prime.
Le bzip2, basé sur la transformée de Burrows-Wheeler plutôt que sur LZ77, obtient un meilleur taux de compression que gzip sur beaucoup de types de données. Sa décompression nettement plus lente que celle de gzip explique qu’il n’ait jamais remplacé ce dernier comme standard par défaut sur le web, et qu’il soit aujourd’hui de plus en plus délaissé au profit de xz ou zstd pour de nouvelles données.
Le xz, qui encapsule l’algorithme LZMA2, pousse le taux de compression plus loin que gzip et bzip2, souvent le meilleur des six sur des données textuelles ou du code source. Le compromis est une compression sensiblement plus lente, ce qui le rend adapté à des données compressées une fois et décompressées souvent (archives de paquets logiciels, sources du noyau Linux) plutôt qu’à un usage nécessitant une compression à la volée.
Le zstd (Zstandard), développé par Facebook et normalisé par la RFC 8878, vise spécifiquement le compromis que gzip et xz ne réussissent pas à tenir ensemble : une décompression rapide à tous les niveaux de compression, y compris aux niveaux les plus élevés qui approchent le taux de xz. Ses niveaux de compression réglables en font un remplacement direct de gzip dans de nombreux systèmes récents (noyau Linux, bases de données, outils de sauvegarde).
Le LZ4 sacrifie délibérément le taux de compression à la vitesse : le projet revendique une décompression plusieurs fois plus rapide que celle de zlib (la bibliothèque derrière gzip). Il est choisi quand la vitesse d’accès aux données compressées compte plus que leur poids final : systèmes de fichiers, bases de données en temps réel, journalisation à haut débit.
Le Brotli, développé par Google et spécifié par la RFC 7932, utilise un dictionnaire statique adapté aux contenus web (HTML, CSS, JavaScript) en plus de LZ77 et Huffman. Il obtient un meilleur taux de compression que gzip pour une vitesse de décompression comparable, ce qui en a fait le format de compression HTTP de référence sur le web moderne (Content-Encoding: br) plutôt qu’un outil de compression de fichiers autonome en ligne de commande.
Gzip reste le choix par défaut pour sa compatibilité universelle, xz quand le taux de compression prime et que le temps de compression importe peu, zstd comme remplacement moderne équilibré (vitesse et taux réglables), LZ4 quand seule la vitesse compte, Brotli spécifiquement pour la diffusion de contenu web, et bzip2 surtout pour lire des archives existantes plutôt que pour en créer de nouvelles.
Voir les fiches techniques complètes →
Formats concernés
Catégories concernées
Voir aussi
- ZIP, RAR, 7Z, TGZ : quel format d'archive choisir selon l'usage
- MIME type, extension, magic bytes, conteneur : le vocabulaire du fichier expliqué simplement
Sources
- RFC 1952 : GZIP file format specification
- RFC 7932 : Brotli Compressed Data Format
- IANA : Media Types (RFC 8878, Zstandard)
- Tukaani : The .xz File Format
- Wikipedia : Bzip2
Dernière mise à jour :