모듈 기본 모듈

모듈 zlib

zlib는 gzip, deflate 및 zlib와 같은 다양한 압축 형식과 모드를 지원하는 내장 압축 모듈입니다.

zlib는 주로 다음 세 가지 기능으로 구성됩니다.

  • deflate: 압축된 데이터;
  • inflate: 데이터 압축을 푼다.
  • gzip: gzip 압축 형식입니다.

zlib을 사용하기 전에 사용해야 하는 압축 알고리즘에 따라 둘 중 하나를 선택해야 합니다. 해당 압축 알고리즘을 선택하려면 zlib의 상수를 참조할 수 있습니다. 예를 들어, 모듈 설명을 위해 deflate 압축 알고리즘을 사용합니다.

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

위의 코드는 데이터를 압축하고 푸는 방법을 보여주며, 먼저 문자열을 zlib.deflate압축하는 방법을 사용하고, 압축 수준 옵션으로 전달한 후, 데이터의 압축을 푸는 방법을 사용합니다. 출력 결과는 원본 문자열과 동일해야 합니다. .hello, worldBEST_SPEEDzlib.inflate

zlib.deflatezlib.inflate다 압축 수준 정의를 지원합니다. 압축 수준은 값 범위의 숫자입니다 [NO_COMPRESSION, BEST_SPEED, DEFAULT_COMPRESSION, BEST_COMPRESSION]. 기본값은 입니다 DEFAULT_COMPRESSION. 이 네 가지 압축 수준의 의미는 다음 표를 참조하세요.

압축 수준 의미
zlib.NO_COMPRESSION 압축되지 않은 데이터(압축 헤더 완성 지원)
zlib.BEST_SPEED 압축 속도는 가장 빠르지만 이에 따라 압축률이 더 나빠집니다.
zlib.DEFAULT_COMPRESSION 압축 알고리즘의 기본값에 따르면 일반적으로 BEST_SPEED보다 느리지만 압축률은 더 높습니다.
zlib.BEST_COMPRESSION 압축률은 가장 높지만 그에 따라 압축 속도도 느려집니다.

모듈을 사용할 zlib때 주의해야 할 점 은 데이터를 압축하고 압축을 동시에 풀려면 모듈을 사용하여 deflate먼저 데이터를 압축한 다음 inflate데이터를 압축 해제하는 데 사용하여 오류를 방지하는 것이 좋습니다. 다양한 압축 형식과 알고리즘의 경우 압축 및 압축 해제를 위한 다른 클래스와 메서드가 있으며, 다음 문서를 참조하여 사용할 수 있습니다.

정적 함수

createDeflate

수축 스트림 객체 생성

1
static Stream zlib.createDeflate(Stream to);

호출 매개변수:

  • to:Stream, 처리 결과를 저장하는 데 사용되는 스트림

결과 반환:

  • Stream, 캡슐화된 스트림 객체를 반환합니다.

createDeflateRaw

deflateRaw 스트림 객체 생성

1
static Stream zlib.createDeflateRaw(Stream to);

호출 매개변수:

  • to:Stream, 처리 결과를 저장하는 데 사용되는 스트림

결과 반환:

  • Stream, 캡슐화된 스트림 객체를 반환합니다.

createGunzip

gunzip 스트림 객체 생성

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

호출 매개변수:

  • to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

결과 반환:

  • Stream, 캡슐화된 스트림 객체를 반환합니다.

createGzip

gzip 스트림 객체 생성

1
static Stream zlib.createGzip(Stream to);

호출 매개변수:

  • to:Stream, 처리 결과를 저장하는 데 사용되는 스트림

결과 반환:

  • Stream, 캡슐화된 스트림 객체를 반환합니다.

createInflate

팽창 스트림 객체 생성

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

호출 매개변수:

  • to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

결과 반환:

  • Stream, 캡슐화된 스트림 객체를 반환합니다.

createInflateRaw

inflateRaw 스트림 객체 생성

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

호출 매개변수:

  • to:Stream, 처리 결과를 저장하는 데 사용되는 스트림
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

결과 반환:

  • Stream, 캡슐화된 스트림 객체를 반환합니다.

deflate

deflate 알고리즘을 사용하여 데이터 압축(zlib 형식)

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

호출 매개변수:

  • data:Buffer, 압축할 데이터가 주어지면
  • level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.

결과 반환:

  • Buffer, 압축된 이진 데이터를 반환합니다.

deflateTo

deflate 알고리즘을 사용하여 데이터를 스트림 객체(zlib 형식)로 압축합니다.

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

호출 매개변수:

  • data:Buffer, 압축할 데이터가 주어지면
  • stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
  • level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.

deflate 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 객체(zlib 형식)로 압축합니다.

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

호출 매개변수:

  • src:Stream, 압축할 데이터가 있는 스트림이 있는 경우
  • stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
  • level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.

inflate

deflate 알고리즘(zlib 형식)으로 압축된 데이터 압축 해제

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

호출 매개변수:

  • data:Buffer, 압축된 데이터가 주어지면
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

결과 반환:

  • Buffer, 압축이 풀린 이진 데이터를 반환합니다.

inflateTo

deflate 알고리즘으로 압축된 데이터를 스트림 객체(zlib 형식)로 압축 해제

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

호출 매개변수:

  • data:Buffer, 압축을 풀 데이터가 주어지면
  • stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

소스 스트림에서 deflate 알고리즘으로 압축된 데이터를 스트림 객체(zlib 형식)로 압축 해제

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

호출 매개변수:

  • src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
  • stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

gzip

gzip 알고리즘을 사용하여 데이터 압축

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

호출 매개변수:

  • data:Buffer, 압축할 데이터가 주어지면

결과 반환:

  • Buffer, 압축된 이진 데이터를 반환합니다.

gzipTo

gzip 알고리즘을 사용하여 데이터를 스트림 객체로 압축

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

호출 매개변수:

  • data:Buffer, 압축할 데이터가 주어지면
  • stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.

gzip 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 개체로 압축합니다.

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

호출 매개변수:

  • src:Stream, 압축할 데이터가 있는 스트림이 있는 경우
  • stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.

gunzip

gzip 알고리즘으로 압축된 데이터 압축 해제

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

호출 매개변수:

  • data:Buffer, 압축된 데이터가 주어지면
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

결과 반환:

  • Buffer, 압축이 풀린 이진 데이터를 반환합니다.

gunzipTo

gzip 알고리즘으로 압축된 데이터를 스트림 객체로 압축 해제

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

호출 매개변수:

  • data:Buffer, 압축을 풀 데이터가 주어지면
  • stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

소스 스트림의 gzip 알고리즘으로 압축된 데이터를 스트림 객체로 압축 해제

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

호출 매개변수:

  • src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
  • stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

deflateRaw

deflate 알고리즘(deflateRaw)을 사용하여 데이터 압축

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

호출 매개변수:

  • data:Buffer, 압축할 데이터가 주어지면
  • level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.

결과 반환:

  • Buffer, 압축된 이진 데이터를 반환합니다.

deflateRawTo

deflate 알고리즘을 사용하여 데이터를 스트림 객체로 압축합니다(deflateRaw).

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

호출 매개변수:

  • data:Buffer, 압축할 데이터가 주어지면
  • stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
  • level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.

deflate 알고리즘을 사용하여 소스 스트림의 데이터를 스트림 객체(deflateRaw)로 압축합니다.

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

호출 매개변수:

  • src:Stream, 압축할 데이터가 있는 스트림이 있는 경우
  • stm:Stream, 압축된 데이터를 저장할 스트림을 지정합니다.
  • level: 정수, 압축 수준을 지정하며 기본값은 DEFAULT_COMPRESSION입니다.

inflateRaw

deflate 알고리즘(inflateRaw)으로 압축된 데이터 압축 해제

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

호출 매개변수:

  • data:Buffer, 압축된 데이터가 주어지면
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

결과 반환:

  • Buffer, 압축이 풀린 이진 데이터를 반환합니다.

inflateRawTo

deflate 알고리즘으로 압축된 데이터를 스트림 객체(inflateRaw)로 압축 해제

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

호출 매개변수:

  • data:Buffer, 압축을 풀 데이터가 주어지면
  • stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

소스 스트림의 deflate 알고리즘으로 압축된 데이터를 스트림 객체(inflateRaw)로 압축 해제

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

호출 매개변수:

  • src:Stream, 압축을 풀 데이터가 있는 스트림이 있는 경우
  • stm:Stream, 압축 해제된 데이터를 저장할 스트림을 지정합니다.
  • maxSize: 정수, 압축 해제 크기 제한을 지정합니다. 기본값은 -1이며 제한이 없습니다.

끊임없는

NO_COMPRESSION

압축 수준을 낮추고 압축하지 않도록 설정

1
const zlib.NO_COMPRESSION = 0;

BEST_SPEED

압축 수준을 낮추고 가장 빠른 압축을 설정합니다.

1
const zlib.BEST_SPEED = 1;

BEST_COMPRESSION

압축 수준을 낮추고 가장 높은 압축을 설정하십시오.

1
const zlib.BEST_COMPRESSION = 9;

DEFAULT_COMPRESSION

압축 수준을 낮추고 기본 설정을 지정합니다.

1
const zlib.DEFAULT_COMPRESSION = -1;