Modulo modulo base

Modulo zlib

zlib è un modulo di compressione integrato che supporta più formati e modalità di compressione come gzip, deflate e zlib.

zlib consiste principalmente delle seguenti tre funzioni:

  • sgonfiare: dati compressi;
  • gonfiare: decomprimere i dati;
  • gzip: formato di compressione gzip.

Prima di utilizzare zlib, devi sceglierne uno in base all'algoritmo di compressione che devi utilizzare. Puoi fare riferimento alle costanti di zlib per selezionare l'algoritmo di compressione corrispondente. Ad esempio, utilizziamo l'algoritmo di compressione deflate per la descrizione del modulo:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
const 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());

Il codice precedente mostra come comprimere e decomprimere i dati. Per prima cosa utilizza zlib.deflateil metodo per comprimere hello, worldla stringa e passala BEST_SPEEDcome opzione del livello di compressione, quindi utilizza zlib.inflateil metodo per decomprimere i dati. Il risultato di output dovrebbe essere lo stesso della stringa originale .

zlib.deflateed zlib.inflateentrambi supportano la definizione del livello di compressione. Il livello di compressione è un numero con un intervallo di valori pari a [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]. Il valore predefinito è DEFAULT_COMPRESSION. Per il significato di questi quattro livelli di compressione si può fare riferimento alla seguente tabella:

Livello di compressione Senso
zlib.NO_COMPRESSION Dati non compressi (con supporto per il completamento dell'intestazione di compressione)
zlib.BEST_SPEED La velocità di compressione più elevata; ma il rapporto di compressione è corrispondentemente peggiore.
zlib.DEFAULT_COMPRESSION Secondo il valore predefinito dell'algoritmo di compressione, solitamente è più lento di BEST_SPEED ma ha un tasso di compressione più elevato.
zlib.BEST_COMPRESSION Rapporto di compressione più elevato, ma velocità di compressione corrispondentemente più lenta.

zlibCiò che è necessario notare quando si utilizza il modulo è che se si desidera comprimere e decomprimere i dati allo stesso tempo, si consiglia di utilizzarlo deflateprima per comprimere i dati e poi di utilizzarlo inflateper decomprimerli per evitare errori. Per diversi formati e algoritmi di compressione, esistono altre classi e metodi per la compressione e la decompressione. Per l'utilizzo è possibile fare riferimento ai seguenti documenti.

funzione statica

createDeflate

Crea un oggetto flusso sgonfio

1
static Stream zlib.createDeflate(Stream to);

Parametri di chiamata:

  • to:Stream, un flusso utilizzato per archiviare i risultati dell'elaborazione

Risultati restituiti:

  • Stream, restituisce l'oggetto flusso incapsulato

createDeflateRaw

Crea un oggetto flusso deflateRaw

1
static Stream zlib.createDeflateRaw(Stream to);

Parametri di chiamata:

  • to:Stream, un flusso utilizzato per archiviare i risultati dell'elaborazione

Risultati restituiti:

  • Stream, restituisce l'oggetto flusso incapsulato

createGunzip

Crea un oggetto flusso gunzip

1 2
static Stream zlib.createGunzip(Stream to, Integer maxSize = -1);

Parametri di chiamata:

  • to:Stream, un flusso utilizzato per archiviare i risultati dell'elaborazione
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Risultati restituiti:

  • Stream, restituisce l'oggetto flusso incapsulato

createGzip

Crea un oggetto flusso gzip

1
static Stream zlib.createGzip(Stream to);

Parametri di chiamata:

  • to:Stream, un flusso utilizzato per archiviare i risultati dell'elaborazione

Risultati restituiti:

  • Stream, restituisce l'oggetto flusso incapsulato

createInflate

Crea un oggetto flusso di gonfiaggio

1 2
static Stream zlib.createInflate(Stream to, Integer maxSize = -1);

Parametri di chiamata:

  • to:Stream, un flusso utilizzato per archiviare i risultati dell'elaborazione
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Risultati restituiti:

  • Stream, restituisce l'oggetto flusso incapsulato

createInflateRaw

Crea un oggetto flusso inflateRaw

1 2
static Stream zlib.createInflateRaw(Stream to, Integer maxSize = -1);

Parametri di chiamata:

  • to:Stream, un flusso utilizzato per archiviare i risultati dell'elaborazione
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Risultati restituiti:

  • Stream, restituisce l'oggetto flusso incapsulato

deflate

Utilizza l'algoritmo di deflazione per comprimere i dati (formato zlib)

1 2
static Buffer zlib.deflate(Buffer data, Integer level = DEFAULT_COMPRESSION) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da comprimere
  • level: Numero intero, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

Risultati restituiti:

  • Buffer, restituisce dati binari compressi

deflateTo

Utilizza l'algoritmo di deflate per comprimere i dati in oggetti stream (formato zlib)

1 2 3
static zlib.deflateTo(Buffer data, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi
  • level: Numero intero, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

Utilizza l'algoritmo di deflazione per comprimere i dati nel flusso di origine in un oggetto flusso (formato zlib)

1 2 3
static zlib.deflateTo(Stream src, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parametri di chiamata:

  • src:Stream, dato il flusso in cui si trovano i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi
  • level: Numero intero, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

inflate

Decomprimere i dati compressi dall'algoritmo di deflate (formato zlib)

1 2
static Buffer zlib.inflate(Buffer data, Integer maxSize = -1) async;

Parametri di chiamata:

  • data:Buffer, dati i dati compressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Risultati restituiti:

  • Buffer, restituisce i dati binari decompressi

inflateTo

Decomprimere i dati compressi dall'algoritmo di deflate in un oggetto stream (formato zlib)

1 2 3
static zlib.inflateTo(Buffer data, Stream stm, Integer maxSize = -1) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da decomprimere
  • stm:Stream, specificare il flusso in cui archiviare i dati decompressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Decomprimere i dati compressi dall'algoritmo di deflazione nel flusso di origine in un oggetto flusso (formato zlib)

1 2 3
static zlib.inflateTo(Stream src, Stream stm, Integer maxSize = -1) async;

Parametri di chiamata:

  • src:Stream, dato il flusso in cui si trovano i dati da decomprimere
  • stm:Stream, specificare il flusso in cui archiviare i dati decompressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

gzip

Comprimi i dati utilizzando l'algoritmo gzip

1
static Buffer zlib.gzip(Buffer data) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da comprimere

Risultati restituiti:

  • Buffer, restituisce dati binari compressi

gzipTo

Utilizza l'algoritmo gzip per comprimere i dati in un oggetto stream

1 2
static zlib.gzipTo(Buffer data, Stream stm) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi

Utilizza l'algoritmo gzip per comprimere i dati nel flusso di origine in un oggetto flusso.

1 2
static zlib.gzipTo(Stream src, Stream stm) async;

Parametri di chiamata:

  • src:Stream, dato il flusso in cui si trovano i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi

gunzip

Decomprime i dati compressi dall'algoritmo gzip

1 2
static Buffer zlib.gunzip(Buffer data, Integer maxSize = -1) async;

Parametri di chiamata:

  • data:Buffer, dati i dati compressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Risultati restituiti:

  • Buffer, restituisce i dati binari decompressi

gunzipTo

Decomprime i dati compressi dall'algoritmo gzip in un oggetto stream

1 2 3
static zlib.gunzipTo(Buffer data, Stream stm, Integer maxSize = -1) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da decomprimere
  • stm:Stream, specificare il flusso in cui archiviare i dati decompressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Decomprimere i dati compressi dall'algoritmo gzip nel flusso di origine in un oggetto flusso

1 2 3
static zlib.gunzipTo(Stream src, Stream stm, Integer maxSize = -1) async;

Parametri di chiamata:

  • src:Stream, dato il flusso in cui si trovano i dati da decomprimere
  • stm:Stream, specificare il flusso in cui archiviare i dati decompressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

deflateRaw

Comprimere i dati utilizzando l'algoritmo di deflate (deflateRaw)

1 2
static Buffer zlib.deflateRaw(Buffer data, Integer level = DEFAULT_COMPRESSION) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da comprimere
  • level: Numero intero, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

Risultati restituiti:

  • Buffer, restituisce dati binari compressi

deflateRawTo

Utilizza l'algoritmo di deflazione per comprimere i dati in oggetti di flusso (deflateRaw)

1 2 3
static zlib.deflateRawTo(Buffer data, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi
  • level: Numero intero, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

Utilizza l'algoritmo di deflazione per comprimere i dati nel flusso di origine in un oggetto flusso (deflateRaw)

1 2 3
static zlib.deflateRawTo(Stream src, Stream stm, Integer level = DEFAULT_COMPRESSION) async;

Parametri di chiamata:

  • src:Stream, dato il flusso in cui si trovano i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi
  • level: Numero intero, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

inflateRaw

Decomprimere i dati compressi dall'algoritmo di deflate (inflateRaw)

1 2
static Buffer zlib.inflateRaw(Buffer data, Integer maxSize = -1) async;

Parametri di chiamata:

  • data:Buffer, dati i dati compressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Risultati restituiti:

  • Buffer, restituisce i dati binari decompressi

inflateRawTo

Decomprimere i dati compressi dall'algoritmo deflate in un oggetto flusso (inflateRaw)

1 2 3
static zlib.inflateRawTo(Buffer data, Stream stm, Integer maxSize = -1) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da decomprimere
  • stm:Stream, specificare il flusso in cui archiviare i dati decompressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

Decomprimere i dati compressi dall'algoritmo deflate nel flusso di origine in un oggetto flusso (inflateRaw)

1 2 3
static zlib.inflateRawTo(Stream src, Stream stm, Integer maxSize = -1) async;

Parametri di chiamata:

  • src:Stream, dato il flusso in cui si trovano i dati da decomprimere
  • stm:Stream, specificare il flusso in cui archiviare i dati decompressi
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

costante

NO_COMPRESSION

ridurre il livello di compressione, non impostare alcuna compressione

1
const zlib.NO_COMPRESSION = 0;

BEST_SPEED

sgonfiare il livello di compressione, impostare la compressione più veloce

1
const zlib.BEST_SPEED = 1;

BEST_COMPRESSION

sgonfiare il livello di compressione, impostare la compressione più alta

1
const zlib.BEST_COMPRESSION = 9;

DEFAULT_COMPRESSION

sgonfiare il livello di compressione, impostare le impostazioni predefinite

1
const zlib.DEFAULT_COMPRESSION = -1;