Итерируемое сжатие¶
Стабильность: 1 – Экспериментальная
Эта возможность не подпадает под правила семантического версионирования. Несовместимые назад изменения или удаление могут произойти в любом будущем релизе. Использовать такую возможность в production-окружении не рекомендуется.
Модуль 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 | |