Module zlib
zlib is een ingebouwde compressiemodule die meerdere compressieformaten en -modi ondersteunt, zoals gzip, deflate en zlib.
zlib bestaat hoofdzakelijk uit de volgende drie functies:
- leeglopen: gecomprimeerde gegevens;
- opblazen: gegevens decomprimeren;
- gzip: gzip-compressieformaat.
Voordat u zlib gebruikt, moet u er een kiezen op basis van het compressie-algoritme dat u moet gebruiken. U kunt de constanten van zlib raadplegen om het overeenkomstige compressie-algoritme te selecteren. We gebruiken bijvoorbeeld het deflate-compressie-algoritme voor de modulebeschrijving:
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());
De bovenstaande code laat zien hoe u gegevens comprimeert en decomprimeert. Gebruik eerst zlib.deflate
de methode om hello, world
de tekenreeks te comprimeren en geef deze door BEST_SPEED
als optie voor het compressieniveau. Gebruik vervolgens zlib.inflate
de methode om de gegevens te decomprimeren. Het uitvoerresultaat moet hetzelfde zijn als de originele tekenreeks .
zlib.deflate
en zlib.inflate
beide ondersteunen het definiëren van het compressieniveau. Het compressieniveau is een getal met een waardebereik van [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]
. De standaardwaarde is DEFAULT_COMPRESSION
. Voor de betekenis van deze vier compressieniveaus kunt u de volgende tabel raadplegen:
Compressieniveau | Betekenis |
---|---|
zlib.NO_COMPRESSION | Niet-gecomprimeerde gegevens (met ondersteuning voor voltooiing van compressieheaders) |
zlib.BEST_SPEED | De snelste compressiesnelheid; maar de compressieverhouding is overeenkomstig slechter. |
zlib.DEFAULT_COMPRESSION | Volgens de standaardwaarde van het compressiealgoritme is het doorgaans langzamer dan BEST_SPEED, maar heeft het een hogere compressiesnelheid. |
zlib.BEST_COMPRESSION | Hoogste compressieverhouding, maar overeenkomstig lagere compressiesnelheid. |
zlib
Waar u op moet letten bij het gebruik van de module is dat als u tegelijkertijd gegevens wilt comprimeren en decomprimeren, het raadzaam is om deze deflate
eerst te gebruiken om de gegevens te comprimeren en deze vervolgens te gebruiken inflate
om de gegevens te decomprimeren om fouten te voorkomen. Voor verschillende compressieformaten en algoritmen zijn er andere klassen en methoden voor compressie en decompressie. Voor gebruik kunt u de volgende documenten raadplegen.
statische functie
createDeflate
Maak een leeglopend stroomobject
1static Stream zlib.createDeflate(Stream to);
Oproepparameters:
- to:Stream, een stream die wordt gebruikt om verwerkingsresultaten op te slaan
Resultaten retourneren:
- Stream, retourneert het ingekapselde stroomobject
createDeflateRaw
Maak een deflateRaw-streamobject
1static Stream zlib.createDeflateRaw(Stream to);
Oproepparameters:
- to:Stream, een stream die wordt gebruikt om verwerkingsresultaten op te slaan
Resultaten retourneren:
- Stream, retourneert het ingekapselde stroomobject
createGunzip
Maak een gunzip-streamobject
1
2static Stream zlib.createGunzip(Stream to,
Integer maxSize = -1);
Oproepparameters:
- to:Stream, een stream die wordt gebruikt om verwerkingsresultaten op te slaan
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Resultaten retourneren:
- Stream, retourneert het ingekapselde stroomobject
createGzip
Maak een gzip-streamobject
1static Stream zlib.createGzip(Stream to);
Oproepparameters:
- to:Stream, een stream die wordt gebruikt om verwerkingsresultaten op te slaan
Resultaten retourneren:
- Stream, retourneert het ingekapselde stroomobject
createInflate
Maak een opblaasstroomobject
1
2static Stream zlib.createInflate(Stream to,
Integer maxSize = -1);
Oproepparameters:
- to:Stream, een stream die wordt gebruikt om verwerkingsresultaten op te slaan
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Resultaten retourneren:
- Stream, retourneert het ingekapselde stroomobject
createInflateRaw
Maak een inflatieraw-streamobject
1
2static Stream zlib.createInflateRaw(Stream to,
Integer maxSize = -1);
Oproepparameters:
- to:Stream, een stream die wordt gebruikt om verwerkingsresultaten op te slaan
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Resultaten retourneren:
- Stream, retourneert het ingekapselde stroomobject
deflate
Gebruik het deflate-algoritme om gegevens te comprimeren (zlib-formaat)
1
2static Buffer zlib.deflate(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Oproepparameters:
- data:Buffer, gegeven de te comprimeren gegevens
- level: Geheel getal, specificeert het compressieniveau, de standaardwaarde is DEFAULT_COMPRESSION
Resultaten retourneren:
- Buffer, retourneert gecomprimeerde binaire gegevens
deflateTo
Gebruik het deflate-algoritme om gegevens te comprimeren in stream-objecten (zlib-indeling)
1
2
3static zlib.deflateTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Oproepparameters:
- data:Buffer, gegeven de te comprimeren gegevens
- stm:Stream, specificeert de stream waarin gecomprimeerde gegevens moeten worden opgeslagen
- level: Geheel getal, specificeert het compressieniveau, de standaardwaarde is DEFAULT_COMPRESSION
Gebruik het deflate-algoritme om gegevens in de bronstream te comprimeren naar een streamobject (zlib-indeling)
1
2
3static zlib.deflateTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Oproepparameters:
- src:Stream, gegeven de stroom waarin de te comprimeren gegevens zich bevinden
- stm:Stream, specificeert de stream waarin gecomprimeerde gegevens moeten worden opgeslagen
- level: Geheel getal, specificeert het compressieniveau, de standaardwaarde is DEFAULT_COMPRESSION
inflate
Gegevens decomprimeren die zijn gecomprimeerd door het leegloopalgoritme (zlib-indeling)
1
2static Buffer zlib.inflate(Buffer data,
Integer maxSize = -1) async;
Oproepparameters:
- data:Buffer, gezien de gecomprimeerde gegevens
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Resultaten retourneren:
- Buffer, retourneert de gedecomprimeerde binaire gegevens
inflateTo
Decomprimeer gegevens die zijn gecomprimeerd door het deflate-algoritme in een streamobject (zlib-indeling)
1
2
3static zlib.inflateTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Oproepparameters:
- data:Buffer, gegeven de gegevens die moeten worden gedecomprimeerd
- stm:Streamgeeft u de stream op waarin gedecomprimeerde gegevens moeten worden opgeslagen
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Decomprimeer de gegevens die zijn gecomprimeerd door het deflate-algoritme in de bronstream naar een streamobject (zlib-indeling)
1
2
3static zlib.inflateTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Oproepparameters:
- src:Stream, gegeven de stroom waarin de te decomprimeren gegevens zich bevinden
- stm:Streamgeeft u de stream op waarin gedecomprimeerde gegevens moeten worden opgeslagen
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
gzip
Gegevens comprimeren met behulp van het gzip-algoritme
1static Buffer zlib.gzip(Buffer data) async;
Oproepparameters:
- data:Buffer, gegeven de te comprimeren gegevens
Resultaten retourneren:
- Buffer, retourneert gecomprimeerde binaire gegevens
gzipTo
Gebruik het gzip-algoritme om gegevens in een streamobject te comprimeren
1
2static zlib.gzipTo(Buffer data,
Stream stm) async;
Oproepparameters:
- data:Buffer, gegeven de te comprimeren gegevens
- stm:Stream, specificeert de stream waarin gecomprimeerde gegevens moeten worden opgeslagen
Gebruik het gzip-algoritme om de gegevens in de bronstream te comprimeren tot een streamobject.
1
2static zlib.gzipTo(Stream src,
Stream stm) async;
Oproepparameters:
- src:Stream, gegeven de stroom waarin de te comprimeren gegevens zich bevinden
- stm:Stream, specificeert de stream waarin gecomprimeerde gegevens moeten worden opgeslagen
gunzip
Decomprimeer gegevens die zijn gecomprimeerd door het gzip-algoritme
1
2static Buffer zlib.gunzip(Buffer data,
Integer maxSize = -1) async;
Oproepparameters:
- data:Buffer, gezien de gecomprimeerde gegevens
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Resultaten retourneren:
- Buffer, retourneert de gedecomprimeerde binaire gegevens
gunzipTo
Decomprimeer met het gzip-algoritme gecomprimeerde gegevens in een streamobject
1
2
3static zlib.gunzipTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Oproepparameters:
- data:Buffer, gegeven de gegevens die moeten worden gedecomprimeerd
- stm:Streamgeeft u de stream op waarin gedecomprimeerde gegevens moeten worden opgeslagen
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Decomprimeer de met het gzip-algoritme gecomprimeerde gegevens in de bronstream naar een streamobject
1
2
3static zlib.gunzipTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Oproepparameters:
- src:Stream, gegeven de stroom waarin de te decomprimeren gegevens zich bevinden
- stm:Streamgeeft u de stream op waarin gedecomprimeerde gegevens moeten worden opgeslagen
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
deflateRaw
Gegevens comprimeren met behulp van het deflate-algoritme (deflateRaw)
1
2static Buffer zlib.deflateRaw(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
Oproepparameters:
- data:Buffer, gegeven de te comprimeren gegevens
- level: Geheel getal, specificeert het compressieniveau, de standaardwaarde is DEFAULT_COMPRESSION
Resultaten retourneren:
- Buffer, retourneert gecomprimeerde binaire gegevens
deflateRawTo
Gebruik het deflate-algoritme om gegevens in streamobjecten te comprimeren (deflateRaw)
1
2
3static zlib.deflateRawTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Oproepparameters:
- data:Buffer, gegeven de te comprimeren gegevens
- stm:Stream, specificeert de stream waarin gecomprimeerde gegevens moeten worden opgeslagen
- level: Geheel getal, specificeert het compressieniveau, de standaardwaarde is DEFAULT_COMPRESSION
Gebruik het deflate-algoritme om gegevens in de bronstream te comprimeren tot een streamobject (deflateRaw)
1
2
3static zlib.deflateRawTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
Oproepparameters:
- src:Stream, gegeven de stroom waarin de te comprimeren gegevens zich bevinden
- stm:Stream, specificeert de stream waarin gecomprimeerde gegevens moeten worden opgeslagen
- level: Geheel getal, specificeert het compressieniveau, de standaardwaarde is DEFAULT_COMPRESSION
inflateRaw
Decomprimeer gegevens die zijn gecomprimeerd door het leegloopalgoritme (inflateRaw)
1
2static Buffer zlib.inflateRaw(Buffer data,
Integer maxSize = -1) async;
Oproepparameters:
- data:Buffer, gezien de gecomprimeerde gegevens
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Resultaten retourneren:
- Buffer, retourneert de gedecomprimeerde binaire gegevens
inflateRawTo
Decomprimeer gegevens die zijn gecomprimeerd door het deflate-algoritme in een streamobject (inflateRaw)
1
2
3static zlib.inflateRawTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
Oproepparameters:
- data:Buffer, gegeven de gegevens die moeten worden gedecomprimeerd
- stm:Streamgeeft u de stream op waarin gedecomprimeerde gegevens moeten worden opgeslagen
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
Decomprimeer gegevens die zijn gecomprimeerd door het deflate-algoritme in de bronstream naar een streamobject (inflateRaw)
1
2
3static zlib.inflateRawTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
Oproepparameters:
- src:Stream, gegeven de stroom waarin de te decomprimeren gegevens zich bevinden
- stm:Streamgeeft u de stream op waarin gedecomprimeerde gegevens moeten worden opgeslagen
- maxSize: geheel getal, specificeert de limiet voor de decompressiegrootte, de standaardwaarde is -1, geen limiet
constante
NO_COMPRESSION
laat het compressieniveau leeglopen, stel geen compressie in
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
laat het compressieniveau leeglopen, stel de snelste compressie in
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
laat het compressieniveau leeglopen, stel de hoogste compressie in
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
compressieniveau leeg laten lopen, standaardinstellingen instellen
1const zlib.DEFAULT_COMPRESSION = -1;