Módulo zlib
zlib es un módulo de compresión integrado que admite múltiples formatos y modos de compresión, como gzip, deflate y zlib.
zlib consta principalmente de las siguientes tres funciones:
- desinflar: datos comprimidos;
- inflar: descomprimir datos;
- gzip: formato de compresión gzip.
Antes de usar zlib, debe elegir uno de ellos de acuerdo con el algoritmo de compresión que necesita usar. Puede consultar las constantes de zlib para seleccionar el algoritmo de compresión correspondiente. Por ejemplo, utilizamos el algoritmo de compresión deflate para la descripción del módulo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const zlib = require('zlib');
const {
NO_COMPRESSION,
BEST_SPEED,
BEST_COMPRESSION,
DEFAULT_COMPRESSION
} = require('zlib');
// compress data
const deflated = zlib.deflate('hello, world', BEST_SPEED);
console.log(deflated.toString());
// decompress data
const inflated = zlib.inflate(deflated);
console.log(inflated.toString());
El código anterior muestra cómo comprimir y descomprimir datos. Primero use zlib.deflate
el método para comprimir hello, world
la cadena, páselo BEST_SPEED
como la opción de nivel de compresión y luego use zlib.inflate
el método para descomprimir los datos. El resultado de salida debe ser el mismo que la cadena original. .
zlib.deflate
y zlib.inflate
ambos admiten la definición del nivel de compresión. El nivel de compresión es un número con un rango de valores de [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]
. El valor predeterminado es DEFAULT_COMPRESSION
. Para conocer el significado de estos cuatro niveles de compresión, puede consultar la siguiente tabla:
Nivel de compresión | Significado |
---|---|
zlib.NO_COMPRESSION | Datos sin comprimir (con soporte para completar el encabezado de compresión) |
zlib.BEST_SPEED | La velocidad de compresión más rápida, pero la relación de compresión es correspondientemente peor. |
zlib.DEFAULT_COMPRESSION | Según el valor predeterminado del algoritmo de compresión, suele ser más lento que BEST_SPEED pero tiene una tasa de compresión más alta. |
zlib.BEST_COMPRESSION | La relación de compresión más alta, pero en consecuencia una velocidad de compresión más lenta. |
zlib
Lo que se debe tener en cuenta al usar el módulo es que si desea comprimir y descomprimir datos al mismo tiempo, se recomienda usarlo deflate
para comprimir los datos primero y luego usarlo inflate
para descomprimir los datos para evitar errores. Para diferentes formatos y algoritmos de compresión, existen otras clases y métodos de compresión y descompresión, que puede consultar los siguientes documentos para su uso.
función estática
createDeflate
Crear un objeto de flujo desinflado
1static Stream zlib.createDeflate(Stream to);
Parámetros de llamada:
- to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
Resultados de devolución:
- Stream, devuelve el objeto de flujo encapsulado
createDeflateRaw
Crear un objeto de flujo deflateRaw
1static Stream zlib.createDeflateRaw(Stream to);
Parámetros de llamada:
- to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
Resultados de devolución:
- Stream, devuelve el objeto de flujo encapsulado
createGunzip
Crear un objeto de flujo gunzip
1
2static Stream zlib.createGunzip(Stream to,
Integer maxSize = -1);
Parámetros de llamada:
- to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Resultados de devolución:
- Stream, devuelve el objeto de flujo encapsulado
createGzip
Crear un objeto de flujo gzip
1static Stream zlib.createGzip(Stream to);
Parámetros de llamada:
- to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
Resultados de devolución:
- Stream, devuelve el objeto de flujo encapsulado
createInflate
Crear un objeto de flujo inflado
1
2static Stream zlib.createInflate(Stream to,
Integer maxSize = -1);
Parámetros de llamada:
- to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Resultados de devolución:
- Stream, devuelve el objeto de flujo encapsulado
createInflateRaw
Crear un objeto de flujo inflateRaw
1
2static Stream zlib.createInflateRaw(Stream to,
Integer maxSize = -1);
Parámetros de llamada:
- to:Stream, una secuencia utilizada para almacenar resultados de procesamiento
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Resultados de devolución:
- Stream, devuelve el objeto de flujo encapsulado
deflate
Utilice el algoritmo deflate para comprimir datos (formato zlib)
1
2static Buffer zlib.deflate(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Parámetros de llamada:
- data:Buffer, dados los datos a comprimir
- level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION
Resultados de devolución:
- Buffer, devuelve datos binarios comprimidos
deflateTo
Utilice el algoritmo deflate para comprimir datos en objetos de flujo (formato zlib)
1
2
3static zlib.deflateTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Parámetros de llamada:
- data:Buffer, dados los datos a comprimir
- stm:Stream, especifica la secuencia para almacenar datos comprimidos
- level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION
Utilice el algoritmo deflate para comprimir datos en la secuencia de origen en un objeto de secuencia (formato zlib)
1
2
3static zlib.deflateTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Parámetros de llamada:
- src:Stream, dada la secuencia en la que se encuentran los datos a comprimir
- stm:Stream, especifica la secuencia para almacenar datos comprimidos
- level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION
inflate
Descomprimir datos comprimidos mediante algoritmo de deflación (formato zlib)
1
2static Buffer zlib.inflate(Buffer data,
Integer maxSize = -1) async;
Parámetros de llamada:
- data:Buffer, dados los datos comprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Resultados de devolución:
- Buffer, devuelve los datos binarios descomprimidos
inflateTo
Descomprimir datos comprimidos por el algoritmo deflate en un objeto de flujo (formato zlib)
1
2
3static zlib.inflateTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Parámetros de llamada:
- data:Buffer, dados los datos a descomprimir
- stm:Stream, especifique la secuencia para almacenar datos descomprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Descomprima los datos comprimidos por el algoritmo deflate en la secuencia de origen en un objeto de secuencia (formato zlib)
1
2
3static zlib.inflateTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Parámetros de llamada:
- src:Stream, dado el flujo en el que se encuentran los datos a descomprimir
- stm:Stream, especifique la secuencia para almacenar datos descomprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
gzip
Comprimir datos usando el algoritmo gzip
1static Buffer zlib.gzip(Buffer data) async;
Parámetros de llamada:
- data:Buffer, dados los datos a comprimir
Resultados de devolución:
- Buffer, devuelve datos binarios comprimidos
gzipTo
Utilice el algoritmo gzip para comprimir datos en un objeto de flujo
1
2static zlib.gzipTo(Buffer data,
Stream stm) async;
Parámetros de llamada:
- data:Buffer, dados los datos a comprimir
- stm:Stream, especifica la secuencia para almacenar datos comprimidos
Utilice el algoritmo gzip para comprimir los datos de la secuencia de origen en un objeto de secuencia.
1
2static zlib.gzipTo(Stream src,
Stream stm) async;
Parámetros de llamada:
- src:Stream, dada la secuencia en la que se encuentran los datos a comprimir
- stm:Stream, especifica la secuencia para almacenar datos comprimidos
gunzip
Descomprimir datos comprimidos por el algoritmo gzip
1
2static Buffer zlib.gunzip(Buffer data,
Integer maxSize = -1) async;
Parámetros de llamada:
- data:Buffer, dados los datos comprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Resultados de devolución:
- Buffer, devuelve los datos binarios descomprimidos
gunzipTo
Descomprimir datos comprimidos por el algoritmo gzip en un objeto de flujo
1
2
3static zlib.gunzipTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Parámetros de llamada:
- data:Buffer, dados los datos a descomprimir
- stm:Stream, especifique la secuencia para almacenar datos descomprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Descomprima los datos comprimidos por el algoritmo gzip en la secuencia de origen en un objeto de secuencia
1
2
3static zlib.gunzipTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Parámetros de llamada:
- src:Stream, dado el flujo en el que se encuentran los datos a descomprimir
- stm:Stream, especifique la secuencia para almacenar datos descomprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
deflateRaw
Comprimir datos usando el algoritmo deflate (deflateRaw)
1
2static Buffer zlib.deflateRaw(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Parámetros de llamada:
- data:Buffer, dados los datos a comprimir
- level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION
Resultados de devolución:
- Buffer, devuelve datos binarios comprimidos
deflateRawTo
Utilice el algoritmo deflate para comprimir datos en objetos de flujo (deflateRaw)
1
2
3static zlib.deflateRawTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Parámetros de llamada:
- data:Buffer, dados los datos a comprimir
- stm:Stream, especifica la secuencia para almacenar datos comprimidos
- level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION
Utilice el algoritmo deflate para comprimir datos en la secuencia de origen en un objeto de secuencia (deflateRaw)
1
2
3static zlib.deflateRawTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Parámetros de llamada:
- src:Stream, dada la secuencia en la que se encuentran los datos a comprimir
- stm:Stream, especifica la secuencia para almacenar datos comprimidos
- level: Entero, especifica el nivel de compresión, el valor predeterminado es DEFAULT_COMPRESSION
inflateRaw
Descomprimir datos comprimidos mediante algoritmo de deflación (inflateRaw)
1
2static Buffer zlib.inflateRaw(Buffer data,
Integer maxSize = -1) async;
Parámetros de llamada:
- data:Buffer, dados los datos comprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Resultados de devolución:
- Buffer, devuelve los datos binarios descomprimidos
inflateRawTo
Descomprimir datos comprimidos por el algoritmo deflate en un objeto de flujo (inflateRaw)
1
2
3static zlib.inflateRawTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Parámetros de llamada:
- data:Buffer, dados los datos a descomprimir
- stm:Stream, especifique la secuencia para almacenar datos descomprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
Descomprima los datos comprimidos por el algoritmo deflate en el flujo de origen en un objeto de flujo (inflateRaw)
1
2
3static zlib.inflateRawTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Parámetros de llamada:
- src:Stream, dado el flujo en el que se encuentran los datos a descomprimir
- stm:Stream, especifique la secuencia para almacenar datos descomprimidos
- maxSize: Entero, especifica el límite de tamaño de descompresión, el valor predeterminado es -1, sin límite
constante
NO_COMPRESSION
desinflar el nivel de compresión, no establecer compresión
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
desinflar el nivel de compresión, establecer la compresión más rápida
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
desinflar el nivel de compresión, establecer la compresión más alta
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
desinflar el nivel de compresión, establecer la configuración predeterminada
1const zlib.DEFAULT_COMPRESSION = -1;