可迭代压缩
History
稳定性:1 - 实验性
node:zlib/iter 模块提供压缩和解压缩转换,用于 node:stream/iter 可迭代流 API。
仅当启用 --experimental-stream-iter CLI 标志时,此模块才可用。
每种算法都有一个异步变体(有状态异步生成器,用于 pull() 和 pipeTo())和一个同步变体(有状态同步生成器,用于 pullSync() 和 pipeToSync())。
异步转换在 libuv 线程池上运行压缩,使 I/O 与 JavaScript 执行重叠。同步转换直接在主线程上运行压缩。
注意:这些转换的默认值针对流吞吐量进行了优化,与
node:zlib中的默认值不同。特别是,gzip/deflate 默认级别为 4(不是 6),memLevel 为 9(不是 8),Brotli 默认质量为 6(不是 11)。这些选择匹配常见的 HTTP 服务器配置,并提供显著更快的压缩速度,而压缩率仅略有降低。所有默认值都可以通过选项覆盖。
import { from, pull, bytes, text } from 'node:stream/iter';
import { compressGzip, decompressGzip } from 'node:zlib/iter';
// 异步往返
const compressed = await bytes(pull(from('hello'), compressGzip()));
const original = await text(pull(from(compressed), decompressGzip()));
console.log(original); // 'hello'compressBrotli(options?): voidcompressBrotliSync(options?): void<Object><number>65536
(64 KB)。<Object>zlib.constants
条目。最重要的压缩器参数是:BROTLI_MODE_GENERIC
(默认)、
BROTLI_MODE_TEXT
或
BROTLI_MODE_FONT
。BROTLI_MIN_QUALITY
到
BROTLI_MAX_QUALITY
。
默认:
6
(不是
BROTLI_DEFAULT_QUALITY
即 11)。质量 6 适用于流式传输;质量 11 旨在用于离线/构建时压缩。0
(未知)。20
(1 MB)。
Brotli 库默认值为 22 (4 MB);降低的默认值节省了内存,而对流式工作负载的压缩影响不大。<TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 Brotli 压缩转换。输出与
zlib.brotliDecompress() 和 decompressBrotli()/decompressBrotliSync() 兼容。
compressDeflate(options?): voidcompressDeflateSync(options?): void<Object><number>65536
(64 KB)。<number>0
-
9
)。
默认:
4
。<number>Z_DEFAULT_WINDOWBITS
(15)。<number>9
。<number>Z_DEFAULT_STRATEGY
。<TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 deflate 压缩转换。输出与
zlib.inflate() 和 decompressDeflate()/decompressDeflateSync() 兼容。
compressGzip(options?): voidcompressGzipSync(options?): void<Object><number>65536
(64 KB)。<number>0
-
9
)。
默认:
4
。<number>Z_DEFAULT_WINDOWBITS
(15)。<number>9
。<number>Z_DEFAULT_STRATEGY
。<TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 gzip 压缩转换。输出与 zlib.gunzip()
和 decompressGzip()/decompressGzipSync() 兼容。
compressZstd(options?): voidcompressZstdSync(options?): void<Object><number>65536
(64 KB)。<Object>zlib.constants
条目。最重要的压缩器参数是:ZSTD_CLEVEL_DEFAULT
(3)。0
。ZSTD_fast
、
ZSTD_dfast
、
ZSTD_greedy
、
ZSTD_lazy
、
ZSTD_lazy2
、
ZSTD_btlazy2
、
ZSTD_btopt
、
ZSTD_btultra
、
ZSTD_btultra2
。
完整列表请参阅 zlib 文档中的
Zstd 压缩器选项
。<number><TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 Zstandard 压缩转换。输出与
zlib.zstdDecompress() 和 decompressZstd()/decompressZstdSync() 兼容。
decompressBrotli(options?): voiddecompressBrotliSync(options?): void<Object><number>65536
(64 KB)。<Object>zlib.constants
条目。可用的解压缩器参数:<TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 Brotli 解压缩转换。
decompressDeflate(options?): voiddecompressDeflateSync(options?): void<Object><number>65536
(64 KB)。<number>Z_DEFAULT_WINDOWBITS
(15)。<TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 deflate 解压缩转换。
decompressGzip(options?): voiddecompressGzipSync(options?): void<Object><number>65536
(64 KB)。<number>Z_DEFAULT_WINDOWBITS
(15)。<TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 gzip 解压缩转换。
decompressZstd(options?): voiddecompressZstdSync(options?): void<Object><number>65536
(64 KB)。<Object>zlib.constants
条目。可用的解压缩器参数:<TypedArray>
|
<DataView><Object>
一个有状态转换。创建一个 Zstandard 解压缩转换。