Module de base

Modulezlib

zlib est un module de compression intégré qui prend en charge plusieurs formats et modes de compression tels que gzip, deflate et zlib.

zlib se compose principalement des trois fonctions suivantes :

  • dégonfler : données compressées ;
  • gonfler : décompresser les données ;
  • gzip : format de compression gzip.

Avant d'utiliser zlib, vous devez en choisir un en fonction de l'algorithme de compression que vous devez utiliser. Vous pouvez vous référer aux constantes de zlib pour sélectionner l'algorithme de compression correspondant. Par exemple, nous utilisons l'algorithme de compression deflate pour la description du module :

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());

Le code ci-dessus montre comment compresser et décompresser les données. Utilisez d'abord zlib.deflatela méthode pour compresser hello, worldla chaîne, puis transmettez-la BEST_SPEEDcomme option de niveau de compression, puis utilisez zlib.inflatela méthode pour décompresser les données. Le résultat de sortie doit être le même que la chaîne d'origine. .

zlib.deflateet zlib.inflateles deux prennent en charge la définition du niveau de compression. Le niveau de compression est un nombre avec une plage de valeurs de [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]. La valeur par défaut est DEFAULT_COMPRESSION. Pour la signification de ces quatre niveaux de compression, vous pouvez vous référer au tableau suivant :

Niveau de compression Signification
zlib.NO_COMPRESSION Données non compressées (avec prise en charge de la complétion de l'en-tête de compression)
zlib.BEST_SPEED La vitesse de compression la plus rapide ; mais le taux de compression est en conséquence pire.
zlib.DEFAULT_COMPRESSION Selon la valeur par défaut de l'algorithme de compression, il est généralement plus lent que BEST_SPEED mais a un taux de compression plus élevé.
zlib.BEST_COMPRESSION Taux de compression le plus élevé, mais vitesse de compression correspondante plus lente.

zlibCe qu'il faut noter lors de l'utilisation du module, c'est que si vous souhaitez compresser et décompresser des données en même temps, il est recommandé de l'utiliser deflated'abord pour compresser les données, puis de l'utiliser inflatepour décompresser les données afin d'éviter les erreurs. Pour différents formats et algorithmes de compression, il existe d'autres classes et méthodes de compression et de décompression. Vous pouvez vous référer aux documents suivants pour leur utilisation.

fonction statique

createDeflate

Créer un objet de flux dégonflé

1
static Stream zlib.createDeflate(Stream to);

Paramètres d'appel :

  • to:Stream, un flux utilisé pour stocker les résultats du traitement

Résultats de retour :

  • Stream, renvoie l'objet flux encapsulé

createDeflateRaw

Créer un objet de flux deflateRaw

1
static Stream zlib.createDeflateRaw(Stream to);

Paramètres d'appel :

  • to:Stream, un flux utilisé pour stocker les résultats du traitement

Résultats de retour :

  • Stream, renvoie l'objet flux encapsulé

createGunzip

Créer un objet de flux gunzip

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

Paramètres d'appel :

  • to:Stream, un flux utilisé pour stocker les résultats du traitement
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Résultats de retour :

  • Stream, renvoie l'objet flux encapsulé

createGzip

Créer un objet de flux gzip

1
static Stream zlib.createGzip(Stream to);

Paramètres d'appel :

  • to:Stream, un flux utilisé pour stocker les résultats du traitement

Résultats de retour :

  • Stream, renvoie l'objet flux encapsulé

createInflate

Créer un objet de flux gonflé

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

Paramètres d'appel :

  • to:Stream, un flux utilisé pour stocker les résultats du traitement
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Résultats de retour :

  • Stream, renvoie l'objet flux encapsulé

createInflateRaw

Créer un objet de flux inflateRaw

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

Paramètres d'appel :

  • to:Stream, un flux utilisé pour stocker les résultats du traitement
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Résultats de retour :

  • Stream, renvoie l'objet flux encapsulé

deflate

Utiliser l'algorithme deflate pour compresser les données (format zlib)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à compresser
  • level: Entier, spécifie le niveau de compression, la valeur par défaut est DEFAULT_COMPRESSION

Résultats de retour :

  • Buffer, renvoie des données binaires compressées

deflateTo

Utiliser l'algorithme deflate pour compresser les données en objets de flux (format zlib)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à compresser
  • stm:Stream, spécifie le flux pour stocker les données compressées
  • level: Entier, spécifie le niveau de compression, la valeur par défaut est DEFAULT_COMPRESSION

Utilisez l'algorithme deflate pour compresser les données du flux source dans un objet flux (format zlib)

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

Paramètres d'appel :

  • src:Stream, étant donné le flux dans lequel se trouvent les données à compresser
  • stm:Stream, spécifie le flux pour stocker les données compressées
  • level: Entier, spécifie le niveau de compression, la valeur par défaut est DEFAULT_COMPRESSION

inflate

Décompresser les données compressées par l'algorithme deflate (format zlib)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données compressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Résultats de retour :

  • Buffer, renvoie les données binaires décompressées

inflateTo

Décompresser les données compressées par l'algorithme deflate dans un objet flux (format zlib)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à décompresser
  • stm:Stream, spécifiez le flux dans lequel stocker les données décompressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Décompressez les données compressées par l'algorithme deflate dans le flux source en un objet flux (format zlib)

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

Paramètres d'appel :

  • src:Stream, étant donné le flux dans lequel se trouvent les données à décompresser
  • stm:Stream, spécifiez le flux dans lequel stocker les données décompressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

gzip

Compresser les données à l'aide de l'algorithme gzip

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à compresser

Résultats de retour :

  • Buffer, renvoie des données binaires compressées

gzipTo

Utilisez l'algorithme gzip pour compresser les données dans un objet flux

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à compresser
  • stm:Stream, spécifie le flux pour stocker les données compressées

Utilisez l'algorithme gzip pour compresser les données du flux source dans un objet flux.

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

Paramètres d'appel :

  • src:Stream, étant donné le flux dans lequel se trouvent les données à compresser
  • stm:Stream, spécifie le flux pour stocker les données compressées

gunzip

Décompresser les données compressées par l'algorithme gzip

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

Paramètres d'appel :

  • data:Buffer, étant donné les données compressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Résultats de retour :

  • Buffer, renvoie les données binaires décompressées

gunzipTo

Décompresser les données compressées par l'algorithme gzip dans un objet flux

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à décompresser
  • stm:Stream, spécifiez le flux dans lequel stocker les données décompressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Décompressez les données compressées par l'algorithme gzip dans le flux source en un objet flux

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

Paramètres d'appel :

  • src:Stream, étant donné le flux dans lequel se trouvent les données à décompresser
  • stm:Stream, spécifiez le flux dans lequel stocker les données décompressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

deflateRaw

Compresser les données à l'aide de l'algorithme deflate (deflateRaw)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à compresser
  • level: Entier, spécifie le niveau de compression, la valeur par défaut est DEFAULT_COMPRESSION

Résultats de retour :

  • Buffer, renvoie des données binaires compressées

deflateRawTo

Utiliser l'algorithme deflate pour compresser les données en objets de flux (deflateRaw)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à compresser
  • stm:Stream, spécifie le flux pour stocker les données compressées
  • level: Entier, spécifie le niveau de compression, la valeur par défaut est DEFAULT_COMPRESSION

Utilisez l'algorithme deflate pour compresser les données du flux source dans un objet de flux (deflateRaw)

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

Paramètres d'appel :

  • src:Stream, étant donné le flux dans lequel se trouvent les données à compresser
  • stm:Stream, spécifie le flux pour stocker les données compressées
  • level: Entier, spécifie le niveau de compression, la valeur par défaut est DEFAULT_COMPRESSION

inflateRaw

Décompresser les données compressées par l'algorithme deflate (inflateRaw)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données compressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Résultats de retour :

  • Buffer, renvoie les données binaires décompressées

inflateRawTo

Décompresser les données compressées par l'algorithme deflate dans un objet flux (inflateRaw)

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

Paramètres d'appel :

  • data:Buffer, étant donné les données à décompresser
  • stm:Stream, spécifiez le flux dans lequel stocker les données décompressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

Décompresser les données compressées par l'algorithme deflate dans le flux source dans un objet flux (inflateRaw)

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

Paramètres d'appel :

  • src:Stream, étant donné le flux dans lequel se trouvent les données à décompresser
  • stm:Stream, spécifiez le flux dans lequel stocker les données décompressées
  • maxSize: Entier, spécifie la limite de taille de décompression, la valeur par défaut est -1, aucune limite

constante

NO_COMPRESSION

dégonfler le niveau de compression, ne définir aucune compression

1
const zlib.NO_COMPRESSION = 0;

BEST_SPEED

dégonfler le niveau de compression, définir la compression la plus rapide

1
const zlib.BEST_SPEED = 1;

BEST_COMPRESSION

dégonfler le niveau de compression, définir la compression la plus élevée

1
const zlib.BEST_COMPRESSION = 9;

DEFAULT_COMPRESSION

dégonfler le niveau de compression, définir les paramètres par défaut

1
const zlib.DEFAULT_COMPRESSION = -1;