モジュールzlib
zlib は、gzip、deflate、zlib などの複数の圧縮形式とモードをサポートする組み込みの圧縮モジュールです。
zlibは主に以下の3つの機能で構成されています。
- deflate: 圧縮データ。
- inflate: データを解凍します。
- gzip: gzip 圧縮形式。
zlib を使用する前に、使用する必要がある圧縮アルゴリズムに応じていずれかを選択する必要があります。 zlib の定数を参照して、対応する圧縮アルゴリズムを選択できます。たとえば、モジュールの記述には deflate 圧縮アルゴリズムを使用します。
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());
上記のコードは、データを圧縮および解凍する方法を示しています。まず、文字列zlib.deflate
を圧縮するメソッドを使用し、圧縮レベル オプションとしてhello, world
渡します。次に、データを解凍するメソッドを使用します。出力結果は、元の文字列と同じになるはずです。 。BEST_SPEED
zlib.inflate
zlib.deflate
およびzlib.inflate
両方とも、圧縮レベルの定義をサポートしています。圧縮レベルは、値の範囲が の数値です[NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]
。デフォルト値は ですDEFAULT_COMPRESSION
。これら 4 つの圧縮レベルの意味については、次の表を参照してください。
圧縮レベル | 意味 |
---|---|
zlib.NO_COMPRESSION | 非圧縮データ (圧縮ヘッダー補完のサポートあり) |
zlib.BEST_SPEED | 圧縮速度は最も速いですが、それに応じて圧縮率も低くなります。 |
zlib.DEFAULT_COMPRESSION | 圧縮アルゴリズムのデフォルト値によると、通常は BEST_SPEED よりも遅くなりますが、圧縮率は高くなります。 |
zlib.BEST_COMPRESSION | 圧縮率は最も高くなりますが、それに応じて圧縮速度は遅くなります。 |
このモジュールを使用するzlib
ときに注意する必要があるのは、データの圧縮と解凍を同時に行う場合は、エラーを避けるために、deflate
最初にデータの圧縮に使用し、次にinflate
データの解凍に使用することをお勧めします。圧縮形式やアルゴリズムの違いについては、圧縮・解凍用のクラスやメソッドが他にもありますので、以下のドキュメントを参照してご利用ください。
静的関数
createDeflate
deflateストリームオブジェクトを作成する
1static Stream zlib.createDeflate(Stream to);
呼び出しパラメータ:
- to:Stream、処理結果を保存するために使用されるストリーム
返される結果:
- Stream、カプセル化されたストリーム オブジェクトを返します。
createDeflateRaw
deflateRaw ストリーム オブジェクトを作成する
1static Stream zlib.createDeflateRaw(Stream to);
呼び出しパラメータ:
- to:Stream、処理結果を保存するために使用されるストリーム
返される結果:
- Stream、カプセル化されたストリーム オブジェクトを返します。
createGunzip
Gunzip ストリーム オブジェクトを作成する
1
2static Stream zlib.createGunzip(Stream to,
Integer maxSize = -1);
呼び出しパラメータ:
- to:Stream、処理結果を保存するために使用されるストリーム
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
返される結果:
- Stream、カプセル化されたストリーム オブジェクトを返します。
createGzip
gzipストリームオブジェクトを作成する
1static Stream zlib.createGzip(Stream to);
呼び出しパラメータ:
- to:Stream、処理結果を保存するために使用されるストリーム
返される結果:
- Stream、カプセル化されたストリーム オブジェクトを返します。
createInflate
インフレートストリームオブジェクトを作成する
1
2static Stream zlib.createInflate(Stream to,
Integer maxSize = -1);
呼び出しパラメータ:
- to:Stream、処理結果を保存するために使用されるストリーム
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
返される結果:
- Stream、カプセル化されたストリーム オブジェクトを返します。
createInflateRaw
inflateRaw ストリーム オブジェクトを作成する
1
2static Stream zlib.createInflateRaw(Stream to,
Integer maxSize = -1);
呼び出しパラメータ:
- to:Stream、処理結果を保存するために使用されるストリーム
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
返される結果:
- Stream、カプセル化されたストリーム オブジェクトを返します。
deflate
deflate アルゴリズムを使用してデータを圧縮します (zlib 形式)
1
2static Buffer zlib.deflate(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
呼び出しパラメータ:
- data:Buffer、圧縮されるデータが与えられた場合
- level: 整数。圧縮レベルを指定します。デフォルトは DEFAULT_COMPRESSION です。
返される結果:
- Buffer、圧縮されたバイナリデータを返します
deflateTo
deflate アルゴリズムを使用してデータをストリーム オブジェクト (zlib 形式) に圧縮します
1
2
3static zlib.deflateTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
呼び出しパラメータ:
- data:Buffer、圧縮されるデータが与えられた場合
- stm:Stream、圧縮データを保存するストリームを指定します
- level: 整数。圧縮レベルを指定します。デフォルトは DEFAULT_COMPRESSION です。
deflate アルゴリズムを使用して、ソース ストリーム内のデータをストリーム オブジェクト (zlib 形式) に圧縮します。
1
2
3static zlib.deflateTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
呼び出しパラメータ:
- src:Stream、圧縮されるデータが配置されているストリームを考慮すると、
- stm:Stream、圧縮データを保存するストリームを指定します
- level: 整数。圧縮レベルを指定します。デフォルトは DEFAULT_COMPRESSION です。
inflate
deflateアルゴリズムで圧縮されたデータを解凍(zlib形式)
1
2static Buffer zlib.inflate(Buffer data,
Integer maxSize = -1) async;
呼び出しパラメータ:
- data:Buffer、圧縮データが与えられた場合
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
返される結果:
- Buffer、解凍されたバイナリデータを返します。
inflateTo
deflateアルゴリズムで圧縮されたデータをストリームオブジェクト(zlib形式)に解凍します。
1
2
3static zlib.inflateTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
呼び出しパラメータ:
- data:Buffer、解凍するデータが与えられた場合
- stm:Stream、解凍されたデータを保存するストリームを指定します
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
ソースストリーム内のdeflateアルゴリズムで圧縮されたデータをストリームオブジェクト(zlib形式)に解凍します。
1
2
3static zlib.inflateTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
呼び出しパラメータ:
- src:Stream、解凍対象のデータが配置されているストリームを考慮すると、
- stm:Stream、解凍されたデータを保存するストリームを指定します
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
gzip
gzip アルゴリズムを使用してデータを圧縮する
1static Buffer zlib.gzip(Buffer data) async;
呼び出しパラメータ:
- data:Buffer、圧縮されるデータが与えられた場合
返される結果:
- Buffer、圧縮されたバイナリデータを返します
gzipTo
gzip アルゴリズムを使用してデータをストリーム オブジェクトに圧縮する
1
2static zlib.gzipTo(Buffer data,
Stream stm) async;
呼び出しパラメータ:
gzip アルゴリズムを使用して、ソース ストリーム内のデータをストリーム オブジェクトに圧縮します。
1
2static zlib.gzipTo(Stream src,
Stream stm) async;
呼び出しパラメータ:
gunzip
gzipアルゴリズムで圧縮されたデータを解凍します。
1
2static Buffer zlib.gunzip(Buffer data,
Integer maxSize = -1) async;
呼び出しパラメータ:
- data:Buffer、圧縮データが与えられた場合
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
返される結果:
- Buffer、解凍されたバイナリデータを返します。
gunzipTo
gzip アルゴリズムで圧縮されたデータをストリーム オブジェクトに解凍します。
1
2
3static zlib.gunzipTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
呼び出しパラメータ:
- data:Buffer、解凍するデータが与えられた場合
- stm:Stream、解凍されたデータを保存するストリームを指定します
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
ソース ストリーム内の gzip アルゴリズム圧縮データをストリーム オブジェクトに解凍します。
1
2
3static zlib.gunzipTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
呼び出しパラメータ:
- src:Stream、解凍対象のデータが配置されているストリームを考慮すると、
- stm:Stream、解凍されたデータを保存するストリームを指定します
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
deflateRaw
deflate アルゴリズム (deflateRaw) を使用してデータを圧縮する
1
2static Buffer zlib.deflateRaw(Buffer data,
Integer level = DEFAULT_COMPRESSION) async;
呼び出しパラメータ:
- data:Buffer、圧縮されるデータが与えられた場合
- level: 整数。圧縮レベルを指定します。デフォルトは DEFAULT_COMPRESSION です。
返される結果:
- Buffer、圧縮されたバイナリデータを返します
deflateRawTo
deflate アルゴリズムを使用してデータをストリーム オブジェクトに圧縮する (deflateRaw)
1
2
3static zlib.deflateRawTo(Buffer data,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
呼び出しパラメータ:
- data:Buffer、圧縮されるデータが与えられた場合
- stm:Stream、圧縮データを保存するストリームを指定します
- level: 整数。圧縮レベルを指定します。デフォルトは DEFAULT_COMPRESSION です。
deflate アルゴリズムを使用して、ソース ストリーム内のデータをストリーム オブジェクト (deflateRaw) に圧縮します。
1
2
3static zlib.deflateRawTo(Stream src,
Stream stm,
Integer level = DEFAULT_COMPRESSION) async;
呼び出しパラメータ:
- src:Stream、圧縮されるデータが配置されているストリームを考慮すると、
- stm:Stream、圧縮データを保存するストリームを指定します
- level: 整数。圧縮レベルを指定します。デフォルトは DEFAULT_COMPRESSION です。
inflateRaw
deflateアルゴリズムで圧縮されたデータを解凍(inflateRaw)
1
2static Buffer zlib.inflateRaw(Buffer data,
Integer maxSize = -1) async;
呼び出しパラメータ:
- data:Buffer、圧縮データが与えられた場合
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
返される結果:
- Buffer、解凍されたバイナリデータを返します。
inflateRawTo
deflateアルゴリズムで圧縮されたデータをストリームオブジェクト(inflateRaw)に解凍します。
1
2
3static zlib.inflateRawTo(Buffer data,
Stream stm,
Integer maxSize = -1) async;
呼び出しパラメータ:
- data:Buffer、解凍するデータが与えられた場合
- stm:Stream、解凍されたデータを保存するストリームを指定します
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
ソースストリーム内のdeflateアルゴリズムによって圧縮されたデータをストリームオブジェクト(inflateRaw)に解凍します。
1
2
3static zlib.inflateRawTo(Stream src,
Stream stm,
Integer maxSize = -1) async;
呼び出しパラメータ:
- src:Stream、解凍対象のデータが配置されているストリームを考慮すると、
- stm:Stream、解凍されたデータを保存するストリームを指定します
- maxSize: 整数。解凍サイズの制限を指定します。デフォルトは -1、制限なしです。
絶え間ない
NO_COMPRESSION
deflate 圧縮レベル、圧縮を設定しない
1const zlib.NO_COMPRESSION = 0;
BEST_SPEED
deflate 圧縮レベル、最速の圧縮を設定します
1const zlib.BEST_SPEED = 1;
BEST_COMPRESSION
deflate 圧縮レベル、最高の圧縮を設定します
1const zlib.BEST_COMPRESSION = 9;
DEFAULT_COMPRESSION
deflate 圧縮レベル、デフォルト設定を設定する
1const zlib.DEFAULT_COMPRESSION = -1;