Búsqueda de sitios web

zstd: un algoritmo de compresión de datos rápido utilizado por Facebook


Zstandard (también conocido como zstd) es un programa gratuito de compresión de datos rápido en tiempo real, de código abierto y con mejores índices de compresión, desarrollado por Facebook. Es un algoritmo de compresión sin pérdidas escrito en C (hay una reimplementación en Java); por lo tanto, es un programa nativo de Linux.

Lea también: 10 ejemplos de comandos 7zip (compresión de datos) en Linux

Cuando sea necesario, puede cambiar la velocidad de compresión por relaciones de compresión más fuertes (la compensación entre velocidad de compresión y relación de compresión se puede configurar en pequeños incrementos), y viceversa. Tiene un modo especial para la compresión de datos pequeños, conocido como compresión de diccionario, y puede crear diccionarios a partir de cualquier conjunto de muestra proporcionado. Viene con una utilidad de línea de comandos para crear y decodificar .zst, .gz, .xz y .lz4. archivos.

Es importante destacar que Zstandard tiene una rica colección de API y es compatible con casi todos los lenguajes de programación populares, incluidos Python, Java, JavaScript, Nodejs, Perl, Ruby, C#, Go, Rust, PHP, Switft y muchos más.

Se utiliza activamente para comprimir grandes volúmenes de datos en múltiples formatos y casos de uso en Facebook; servicios como el almacenamiento de datos de Amazon Redshift; bases de datos como Hadoop y Redis; la red Tor y muchas otras aplicaciones, incluidos juegos.

Los siguientes resultados se obtienen realizando varias pruebas de algoritmos de compresión rápida en un servidor que ejecuta Linux Debian utilizando lzbench, una herramienta de referencia en memoria de código abierto.

Cómo instalar la herramienta de compresión Zstandard en Linux

Para instalar Zstandard en una distribución de Linux, debe compilarlo desde las fuentes, pero antes de eso, primero debe instalar las herramientas de desarrollo necesarias en su sistema usando su administrador de paquetes de distribución como se muestra.

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+

Una vez instaladas todas las herramientas de desarrollo necesarias, ahora puede descargar el paquete fuente, ir al directorio del repositorio local, compilar el binario e instalarlo como se muestra.

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

Una vez instalado Zstandard, ahora podemos avanzar para aprender algunos ejemplos de uso básico de los ejemplos del comando Zstd en la siguiente sección.

Aprenda 10 ejemplos de uso del comando Zstd en Linux

La sintaxis de la línea de comandos de Zstd es generalmente similar a la de las herramientas gzip y xz, con algunas diferencias.

1. Para crear un archivo de compresión .zst, simplemente proporcione un nombre de archivo para comprimirlo o use el indicador -z que también significa comprimir, lo cual es la acción predeterminada.

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

2. Para descomprimir un archivo comprimido .zst, utilice el indicador -d o la utilidad unzstd como se muestra.

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

3. Para eliminar el archivo fuente después de una operación, de forma predeterminada, el archivo fuente no se elimina después de una compresión o descompresión exitosa; para eliminarlo, use la opción --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. Para establecer un nivel de compresión, zstd tiene varios modificadores de operación; por ejemplo, puede especificar un nivel de compresión como -6(un número del 1 al 19, el valor predeterminado es 3) como se muestra.

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

5. Para establecer una velocidad de compresión, zstd tiene una relación de velocidad de compresión 1-10, la velocidad de compresión predeterminada es 1. Puede cambiar la relación de compresión por la velocidad de compresión con la opción --fast; cuanto mayor sea el número, más rápida será la velocidad de compresión.

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

6. Para mostrar información sobre un archivo comprimido, utilice el indicador -l, que se utiliza para mostrar información sobre un archivo comprimido, por ejemplo.

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

7. Para probar la integridad de un archivo comprimido, utilice el indicador -t como se muestra.

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

8. Para habilitar el modo detallado, utilice la opción -v.

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

9. Para usar otros formatos de compresión o descompresión de archivos como gzip, xz, lzma y lz4, use --format=FORMAT como se muestra.

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

10. Para establecer una prioridad de proceso zstd en tiempo real, puede usar la opción –priority=rt como se muestra.

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

El indicador -r indica a zstd que opere recursivamente en diccionarios. Puede encontrar muchas opciones útiles y avanzadas sobre cómo leer o crear diccionarios consultando la página de manual de zstd.

man zstd

Repositorio Zstandard Github: https://github.com/facebook/zstd

Zstandard es una herramienta y algoritmo de compresión de datos rápido, en tiempo real y sin pérdidas, que ofrece altos índices de compresión. Pruébelo y comparta sus opiniones al respecto o haga preguntas a través del formulario de comentarios a continuación.