Итерируемое сжатие¶
Стабильность: 1 – Экспериментальная
Эта возможность не подпадает под правила семантического версионирования. Несовместимые изменения или удаление могут произойти в любом будущем релизе. Использовать такую возможность в рабочем окружении не рекомендуется.
Модуль node:zlib/iter предоставляет преобразования сжатия и распаковки для API итерируемых потоков node:stream/iter.
Модуль доступен только при включённом флаге CLI --experimental-stream-iter.
У каждого алгоритма есть асинхронный вариант (сохраняющий состояние async generator — для pull() и pipeTo()) и синхронный вариант (сохраняющий состояние sync generator — для pullSync() и pipeToSync()).
Асинхронные преобразования выполняют сжатие в пуле потоков libuv, перекрывая ввод-вывод с выполнением JavaScript. Синхронные выполняют сжатие прямо в основном потоке.
Примечание: значения по умолчанию для этих преобразований настроены на пропускную способность потоковой передачи и отличаются от значений по умолчанию в
node:zlib. В частности, для gzip/deflate по умолчанию уровень 4 (не 6) и memLevel 9 (не 8), для Brotli — качество 6 (не 11). Это соответствует типичным настройкам HTTP-серверов и даёт заметно более быстрое сжатие при небольшом снижении степени сжатия. Все значения по умолчанию можно переопределить через опции.
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 | |
compressBrotli([options])¶
compressBrotliSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).params<Object>Объект «ключ — значение», где ключи и значения — записиzlib.constants. Основные параметры компрессора:BROTLI_PARAM_MODE—BROTLI_MODE_GENERIC(по умолчанию),BROTLI_MODE_TEXTилиBROTLI_MODE_FONT.BROTLI_PARAM_QUALITY— отBROTLI_MIN_QUALITYдоBROTLI_MAX_QUALITY. По умолчанию:6(неBROTLI_DEFAULT_QUALITY, который равен 11). Качество 6 подходит для потоковой передачи; качество 11 — для офлайн/сборочного сжатия.BROTLI_PARAM_SIZE_HINT— ожидаемый размер входа. По умолчанию:0(неизвестно).BROTLI_PARAM_LGWIN— размер окна (log2). По умолчанию:20(1 МБ). В библиотеке Brotli по умолчанию 22 (4 МБ); уменьшенное значение экономит память без существенной потери сжатия для потоковых сценариев.BROTLI_PARAM_LGBLOCK— размер блока входа (log2). Полный список см. в разделе параметры компрессора Brotli в документации по zlib.
dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование сжатия Brotli. Выход совместим с zlib.brotliDecompress() и decompressBrotli()/decompressBrotliSync().
compressDeflate([options])¶
compressDeflateSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).level<number>Уровень сжатия (0–9). По умолчанию:4.windowBits<number>По умолчанию:Z_DEFAULT_WINDOWBITS(15).memLevel<number>По умолчанию:9.strategy<number>По умолчанию:Z_DEFAULT_STRATEGY.dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование сжатия deflate. Выход совместим с zlib.inflate() и decompressDeflate()/decompressDeflateSync().
compressGzip([options])¶
compressGzipSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).level<number>Уровень сжатия (0–9). По умолчанию:4.windowBits<number>По умолчанию:Z_DEFAULT_WINDOWBITS(15).memLevel<number>По умолчанию:9.strategy<number>По умолчанию:Z_DEFAULT_STRATEGY.dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование сжатия gzip. Выход совместим с zlib.gunzip() и decompressGzip()/decompressGzipSync().
compressZstd([options])¶
compressZstdSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).params<Object>Объект «ключ — значение», где ключи и значения — записиzlib.constants. Основные параметры компрессора:ZSTD_c_compressionLevel— по умолчанию:ZSTD_CLEVEL_DEFAULT(3).ZSTD_c_checksumFlag— формировать контрольную сумму. По умолчанию:0.ZSTD_c_strategy— стратегия сжатия. Значения включаютZSTD_fast,ZSTD_dfast,ZSTD_greedy,ZSTD_lazy,ZSTD_lazy2,ZSTD_btlazy2,ZSTD_btopt,ZSTD_btultra,ZSTD_btultra2. Полный список см. в разделе параметры компрессора Zstd в документации по zlib.
pledgedSrcSize<number>Ожидаемый несжатый размер (необязательная подсказка).dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование сжатия Zstandard. Выход совместим с zlib.zstdDecompress() и decompressZstd()/decompressZstdSync().
decompressBrotli([options])¶
decompressBrotliSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).params<Object>Объект «ключ — значение», где ключи и значения — записиzlib.constants. Доступные параметры декомпрессора:BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION— логический флаг, влияющий на внутреннее выделение памяти.BROTLI_DECODER_PARAM_LARGE_WINDOW— логический флаг, включающий режим большого окна Brotli (несовместим с RFC 7932). Подробнее см. в разделе параметры декомпрессора Brotli в документации по zlib.
dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование распаковки Brotli.
decompressDeflate([options])¶
decompressDeflateSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).windowBits<number>По умолчанию:Z_DEFAULT_WINDOWBITS(15).dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование распаковки deflate.
decompressGzip([options])¶
decompressGzipSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).windowBits<number>По умолчанию:Z_DEFAULT_WINDOWBITS(15).dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование распаковки gzip.
decompressZstd([options])¶
decompressZstdSync([options])¶
options<Object>chunkSize<number>Размер выходного буфера. По умолчанию:65536(64 КБ).params<Object>Объект «ключ — значение», где ключи и значения — записиzlib.constants. Доступные параметры декомпрессора:ZSTD_d_windowLogMax— максимальный размер окна (log2), который декомпрессор может выделить. Ограничивает использование памяти при вредоносном входе. Подробнее см. в разделе параметры декомпрессора Zstd в документации по zlib.
dictionary<Buffer>|<TypedArray>|<DataView>
- Возвращает:
<Object>Преобразование с состоянием.
Создаёт преобразование распаковки Zstandard.
