Базовый модуль модуля

Модуль злиб

zlib — это встроенный модуль сжатия, который поддерживает несколько форматов и режимов сжатия, таких как gzip, deflate и zlib.

zlib в основном состоит из следующих трех функций:

  • дефляция: сжатые данные;
  • надуть: распаковать данные;
  • 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, worldстроки и передайте его BEST_SPEEDв качестве параметра уровня сжатия, а затем используйте zlib.inflateметод для распаковки данных. Результат вывода должен быть таким же, как исходная строка. .

zlib.deflateОба zlib.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, без ограничений.

Распакуйте данные, сжатые алгоритмом дефляции в исходном потоке, в объект потока (формат 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

Сжатие данных с использованием алгоритма выкачивания (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

Распаковка данных, сжатых алгоритмом дефляции (inflateRaw).

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

Параметры звонка:

  • data:Buffer, учитывая сжатые данные
  • maxSize: целое число, указывает предел размера распаковки, значение по умолчанию - -1, без ограничений.

Результаты возврата:

  • Buffer, возвращает распакованные двоичные данные

inflateRawTo

Распаковать данные, сжатые алгоритмом дефляции, в объект потока (inflateRaw).

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

Параметры звонка:

  • data:Buffer, учитывая данные, подлежащие распаковке
  • stm:Stream, укажите поток для хранения распакованных данных
  • maxSize: целое число, указывает предел размера распаковки, значение по умолчанию - -1, без ограничений.

Распаковать данные, сжатые алгоритмом дефляции в исходном потоке, в объект потока (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;