Modulo modulo base

modulo zlib

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

zlib consiste principalmente delle seguenti tre funzioni:

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

Prima di utilizzare zlib, è necessario sceglierne uno in base all'algoritmo di compressione che si desidera utilizzare. È possibile fare riferimento alle costanti di zlib per selezionare l'algoritmo di compressione corrispondente. Ad esempio, utilizziamo l'algoritmo di compressione deflate per le dichiarazioni dei moduli:

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, utilizzare prima zlib.deflateil metodo per comprimere hello, worldla stringa e passarlo BEST_SPEEDcome opzione del livello di compressione, quindi utilizzare zlib.inflateil metodo per decomprimere i dati, il risultato dell'output dovrebbe essere lo stesso dell'originale corda.

zlib.deflatezlib.inflateEntrambi supportano la definizione del livello di compressione, il livello di compressione è un numero, l'intervallo di valori è [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]e il valore predefinito è DEFAULT_COMPRESSION. Per il significato di questi 4 livelli di compressione si può fare riferimento alla seguente tabella:

Livello di compressione Senso
zlib.NO_COMPRESSION Dati non compressi (supporto completo con intestazioni di compressione)
zlib.BEST_SPEED La velocità di compressione più veloce; ma il rapporto di compressione è corrispondentemente peggiore
zlib.DEFAULT_COMPRESSION In base al valore predefinito dell'algoritmo di compressione, di solito la velocità di compressione è inferiore a BEST_SPEED ma la velocità di compressione è superiore
zlib.BEST_COMPRESSION Rapporto di compressione più alto, ma velocità di compressione corrispondentemente più lenta.

Quando si utilizza zlibil modulo , va notato che se si desidera comprimere e decomprimere i dati contemporaneamente, si consiglia di utilizzare deflateprima per comprimere i dati e quindi utilizzare inflateper decomprimere i dati per evitare errori. Per diversi formati e algoritmi di compressione, esistono altre classi e metodi per la compressione e la decompressione, che possono essere utilizzati facendo riferimento ai seguenti documenti.

funzione statica

createDeflate

Crea un oggetto flusso deflate

1
static Stream zlib.createDeflate(Stream to);

Parametri di chiamata:

  • to:Stream, un flusso per l'archiviazione dei risultati dell'elaborazione

risultato di ritorno:

  • 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 per l'archiviazione dei risultati dell'elaborazione

risultato di ritorno:

  • 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 per l'archiviazione dei risultati dell'elaborazione
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

risultato di ritorno:

  • 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 per l'archiviazione dei risultati dell'elaborazione

risultato di ritorno:

  • Stream, restituisce l'oggetto flusso incapsulato

createInflate

Crea un oggetto flusso di espansione

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

Parametri di chiamata:

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

risultato di ritorno:

  • 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 per l'archiviazione dei risultati dell'elaborazione
  • maxSize: Numero intero, specifica il limite della dimensione di decompressione, il valore predefinito è -1, nessun limite

risultato di ritorno:

  • Stream, restituisce l'oggetto flusso incapsulato

deflate

Comprimi i dati utilizzando l'algoritmo deflate (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: Integer, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

risultato di ritorno:

  • Buffer, restituisce dati binari compressi

deflateTo

Utilizzare l'algoritmo 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: Integer, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

Utilizzare l'algoritmo deflate per comprimere i dati nel flusso di origine nell'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 risiedono i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi
  • level: Integer, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

inflate

Decomprimere i dati compressi dall'algoritmo 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

risultato di ritorno:

  • Buffer, restituisce i dati binari decompressi

inflateTo

Decomprimere i dati compressi dall'algoritmo 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, specifica 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 nell'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 risiedono i dati da decomprimere
  • stm:Stream, specifica 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

risultato di ritorno:

  • Buffer, restituisce dati binari compressi

gzipTo

Comprimi i dati in un oggetto flusso utilizzando l'algoritmo gzip

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

Comprimere i dati nel flusso di origine nell'oggetto flusso utilizzando l'algoritmo gzip

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

Parametri di chiamata:

  • src:Stream, dato il flusso in cui risiedono 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

risultato di ritorno:

  • 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, specifica 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 nell'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 risiedono i dati da decomprimere
  • stm:Stream, specifica 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

Comprimi i dati utilizzando l'algoritmo 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: Integer, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

risultato di ritorno:

  • Buffer, restituisce dati binari compressi

deflateRawTo

Utilizzare l'algoritmo deflate per comprimere i dati in oggetti stream (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: Integer, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

Utilizzare l'algoritmo deflate per comprimere i dati nel flusso di origine nell'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 risiedono i dati da comprimere
  • stm:Stream, specifica il flusso in cui archiviare i dati compressi
  • level: Integer, specifica il livello di compressione, il valore predefinito è DEFAULT_COMPRESSION

inflateRaw

Decomprimere i dati compressi dall'algoritmo 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

risultato di ritorno:

  • Buffer, restituisce i dati binari decompressi

inflateRawTo

Decomprimere i dati compressi dall'algoritmo deflate nell'oggetto stream (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, specifica 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 nell'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 risiedono i dati da decomprimere
  • stm:Stream, specifica 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

sgonfiare il livello di compressione, non impostare alcuna compressione

1
const zlib.NO_COMPRESSION = 0;

BEST_SPEED

deflate il livello di compressione, imposta la compressione più veloce

1
const zlib.BEST_SPEED = 1;

BEST_COMPRESSION

sgonfia il livello di compressione, imposta la compressione più alta

1
const zlib.BEST_COMPRESSION = 9;

DEFAULT_COMPRESSION

sgonfiare il livello di compressione, impostare l'impostazione predefinita

1
const zlib.DEFAULT_COMPRESSION = -1;