Comparatif

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.

AlgorithmeOrigineTaux de compressionVitesseUsage typique
gzip1992, DEFLATEModesteRapide dans les deux sensCompression HTTP, standard Unix universel
bzip21996, transformée de Burrows-WheelerBonneDécompression lenteDe moins en moins choisi pour de nouvelles données
xz2009, LZMA2Très élevéCompression lente, décompression correcteArchivage, paquets logiciels, noyau Linux
zstd2016 (Facebook/Meta), RFC 8878Réglable, très bonRapide dans les deux sens à tous les niveauxRemplacement moderne de gzip et xz
LZ42011FaibleExtrêmement rapideTemps réel, bases de données, systèmes de fichiers
Brotli2013 (Google), RFC 7932Meilleur que gzipProche de gzip en décompressionCompression 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

Sources

Dernière mise à jour :