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
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());
Le code ci-dessus montre comment compresser et décompresser les données. Utilisez d'abord zlib.deflate
la méthode pour compresser hello, world
la chaîne, puis transmettez-la BEST_SPEED
comme option de niveau de compression, puis utilisez zlib.inflate
la 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.deflate
et zlib.inflate
les 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. |
zlib
Ce 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 deflate
d'abord pour compresser les données, puis de l'utiliser inflate
pour 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é
1static 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
1static 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
2static 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
1static 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
2static 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
2static 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
2static 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
3static 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
3static 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
2static 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
3static 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
3static 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
1static 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
2static 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
2static 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
2static 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
3static 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
3static 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
2static 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
3static 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
3static 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
2static 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
3static 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
3static 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
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
dégonfler le niveau de compression, définir la compression la plus rapide
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
dégonfler le niveau de compression, définir la compression la plus élevée
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
dégonfler le niveau de compression, définir les paramètres par défaut
1const zlib.DEFAULT_COMPRESSION = -1;