Recherche de site Web

zstd - Un algorithme de compression de données rapide utilisé par Facebook


Zstandard (également connu sous le nom de zstd) est un programme open source gratuit de compression de données rapide en temps réel avec de meilleurs taux de compression, développé par Facebook. Il s'agit d'un algorithme de compression sans perte écrit en C (il existe une réimplémentation en Java) – c'est donc un programme Linux natif.

Lire aussi : 10 exemples de commandes 7zip (Data Comerssion) sous Linux

Si nécessaire, il peut échanger la vitesse de compression contre des taux de compression plus élevés (le compromis vitesse de compression/taux de compression peut être configuré par petits incréments), vice versa. Il dispose d'un mode spécial pour la compression de petites données, appelé compression de dictionnaire, et peut créer des dictionnaires à partir de n'importe quel ensemble d'échantillons fourni. Il est livré avec un utilitaire de ligne de commande pour créer et décoder .zst, .gz, .xz et .lz4. des dossiers.

Il est important de noter que Zstandard possède une riche collection d'API et prend en charge presque tous les langages de programmation populaires, notamment Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft et bien d'autres.

Il est activement utilisé pour compresser de gros volumes de données dans plusieurs formats et cas d'utilisation dans Facebook ; des services tels que l'entreposage de données Amazon Redshift ; des bases de données telles que Hadoop et Redis ; le réseau Tor et de nombreuses autres applications dont des jeux.

Les résultats suivants sont obtenus en effectuant plusieurs tests d'algorithmes de compression rapides sur un serveur exécutant Linux Debian à l'aide de lzbench, un outil de référence en mémoire open source.

Comment installer l'outil de compression Zstandard sous Linux

Pour installer Zstandard sur une distribution Linux, vous devez le compiler à partir des sources, mais avant cela, vous devez d'abord installer les outils de développement nécessaires sur votre système à l'aide de votre gestionnaire de packages de distribution, comme indiqué.

sudo apt update && sudo apt install build-essential		#Ubuntu/Debian
yum group install "Development Tools" 			#CentOS/REHL
dnf groupinstall "C Development Tools and Libraries"		#Fedora 22+

Une fois tous les outils de développement nécessaires installés, vous pouvez maintenant télécharger le package source, accéder au répertoire du dépôt local, créer le binaire et l'installer comme indiqué.

cd ~/Downloads
git clone https://github.com/facebook/zstd.git
cd zstd
make
sudo make install 

Une fois Zstandard installé, nous pouvons maintenant aller plus loin pour apprendre quelques exemples d'utilisation de base des exemples de commandes Zstd dans la section suivante.

Apprenez 10 exemples d'utilisation de la commande Zstd sous Linux

La syntaxe de ligne de commande de Zstd est généralement similaire à celle des outils gzip et xz, avec quelques différences.

1. Pour créer un fichier de compression .zst, fournissez simplement un nom de fichier pour le compresser ou utilisez l'indicateur -z qui signifie également compresser, ce qui est l'action par défaut.

zstd etcher-1.3.1-x86_64.AppImage 
OR
zstd -z etcher-1.3.1-x86_64.AppImage 

2. Pour décompresser un fichier de compression .zst, utilisez l'indicateur -d ou l'utilitaire unzstd comme indiqué.

zstd -d etcher-1.3.1-x86_64.AppImage.zst 
OR
unzstd etcher-1.3.1-x86_64.AppImage.zst 

3. Pour supprimer le fichier source après une opération, par défaut, le fichier source n'est pas supprimé après une compression ou une décompression réussie, pour le supprimer, utilisez l'option --rm.

ls etcher-1.3.1-x86_64.AppImage
zstd --rm  etcher-1.3.1-x86_64.AppImage
ls etcher-1.3.1-x86_64.AppImage

4. Pour définir un niveau de compression, zstd dispose d'un certain nombre de modificateurs d'opération, par exemple, vous pouvez spécifier un niveau de compression comme -6 (un nombre compris entre 1 et 19, la valeur par défaut est 3) comme indiqué.

zstd -6 --rm etcher-1.3.1-x86_64.AppImage

5. Pour définir une vitesse de compression, zstd a un rapport de vitesse de compression 1-10, la vitesse de compression par défaut est 1. Vous pouvez échanger le taux de compression contre la vitesse de compression avec l'option --fast, plus le nombre est élevé, plus la vitesse de compression est rapide.

zstd --fast=10 etcher-1.3.1-x86_64.AppImage

6. Pour afficher des informations sur un fichier compressé, utilisez l'indicateur -l, qui est utilisé pour afficher des informations sur un fichier compressé, par exemple.

zstd -l etcher-1.3.1-x86_64.AppImage.zst

7. Pour tester l'intégrité d'un fichier compressé, utilisez l'indicateur -t comme indiqué.

zstd -t etcher-1.3.1-x86_64.AppImage.zst

8. Pour activer le mode détaillé, utilisez l'option -v.

zstd -v -5 etcher-1.3.1-x86_64.AppImage

9. Pour utiliser d'autres formats de compression ou de décompression de fichiers tels que gzip, xz, lzma et lz4, en utilisant le --format=FORMAT comme indiqué.

zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage
zstd -v --format=xz  etcher-1.3.1-x86_64.AppImage

10. Pour définir une priorité de processus zstd en temps réel, vous pouvez utiliser l'option –priority=rt comme indiqué.

$zstd --priority=rt etcher-1.3.1-x86_64.AppImage

L'indicateur -r demande à zstd d'opérer de manière récursive sur les dictionnaires. Vous pouvez trouver de nombreuses options utiles et avancées, comment lire ou créer des dictionnaires en consultant la page de manuel zstd.

man zstd

Référentiel Github Zstandard : https://github.com/facebook/zstd

Zstandard est un algorithme et un outil de compression de données rapides en temps réel et sans perte qui offrent des taux de compression élevés. Essayez-le et partagez vos impressions ou posez des questions via le formulaire de commentaires ci-dessous.