Node.js v18.7.0 文档


目录

zlib 压缩#

中英对照

node:zlib 模块提供了使用 Gzip、Deflate/Inflate、以及 Brotli 实现的压缩功能。




线程池的使用与性能的考虑#

中英对照

所有 zlib API,除了那些显式同步的 API,都使用 Node.js 内部线程池。 这可能会在某些应用程序中导致令人惊讶的效果和性能限制。


压缩 HTTP 的请求和响应#

中英对照

node:zlib 模块可用于实现对 HTTP 定义的 gzipdeflatebr 内容编码机制的支持。




内存使用的调整#

对于基于 zlib 的流#

中英对照

zlib/zconf.h 开始,针对 Node.js 使用进行了修改:



对于基于 Brotli 的流#

中英对照

有与基于 Brotli 的流的 zlib 选项等效的选项,尽管这些选项的范围与 zlib 的范围不同:

    刷新#

    中英对照

    在压缩流上调用 .flush() 将使 zlib 返回尽可能多的当前输出。 这可能以降低压缩质量为代价,但在需要尽快提供数据时非常有用。

    
    

    常量#

    zlib 常量#

    中英对照

    zlib.h 中定义的所有常量也在 require('node:zlib').constants 上定义。 在正常的操作过程中,没有必要使用这些常量。 它们被记录在案,因此它们的存在不足为奇。 本章节几乎直接取自 zlib 文档

            Brotli 常量#

            中英对照

            有几个选项和其他常量可用于基于 Brotli 的流:

            刷新操作#

            中英对照

            以下值是基于 Brotli 的流的有效刷新操作:

              压缩器选项#

              中英对照

              可以在 Brotli 编码器上设置几个选项,影响压缩效率和速度。 键和值都可以作为 zlib.constants 对象的属性访问。

                  解压器选项#

                  中英对照

                  这些高级选项可用于控制减压:

                    Options#

                    中英对照

                    每个基于 zlib 的类都有一个 options 对象。 不需要任何选项。

                      BrotliOptions#

                      中英对照

                      每个基于 Brotli 的类都有一个 options 对象。 所有选项都是可选的。

                        
                        

                        zlib.BrotliCompress#

                        中英对照

                        使用 Brotli 算法压缩数据。

                        zlib.BrotliDecompress#

                        中英对照

                        使用 Brotli 算法解压缩数据。

                        zlib.Deflate#

                        中英对照

                        使用 deflate 压缩数据。

                        zlib.DeflateRaw#

                        中英对照

                        使用 deflate 压缩数据,并且不附加 zlib 标头。

                        zlib.Gunzip#

                        中英对照

                        解压缩 gzip 流。

                        zlib.Gzip#

                        中英对照

                        使用 gzip 压缩数据。

                        zlib.Inflate#

                        中英对照

                        解压缩 deflate 流。

                        zlib.InflateRaw#

                        中英对照

                        解压缩原始的 deflate 流。

                        zlib.Unzip#

                        中英对照

                        通过自动检测标头来解压缩 Gzip 或 Deflate 压缩的流。

                        zlib.ZlibBase#

                        中英对照

                        不是由 node:zlib 模块导出的。 它记录在此处,因为它是压缩器/解压缩器类的基类。

                        zlib.bytesRead#

                        中英对照

                          弃用的 zlib.bytesWritten 别名。 选择这个原始名称是因为将值解释为引擎读取的字节数也是有意义的,但与 Node.js 中以这些名称公开值的其他流不一致。

                          zlib.bytesWritten#

                          中英对照

                            zlib.bytesWritten 属性指定在处理字节(压缩或解压缩,视派生类而定)之前写入引擎的字节数。

                            zlib.close([callback])#

                            中英对照

                              关闭底层句柄。

                              zlib.flush([kind, ]callback)#

                              中英对照

                                刷新挂起的数据。 不要轻率地称之为,过早刷新会对压缩算法的有效性产生负面影响。

                                zlib.params(level, strategy, callback)#

                                中英对照

                                  此函数仅适用于基于 zlib 的流,即不适用于 Brotli。

                                  zlib.reset()#

                                  中英对照

                                  将压缩器/解压缩器重置为出厂默认设置。 仅适用于 inflate 和 deflate 算法。

                                  zlib.constants#

                                  中英对照

                                  提供枚举 Zlib 相关常量的对象。

                                  zlib.createBrotliCompress([options])#

                                  中英对照

                                    创建并返回新的 BrotliCompress 对象。

                                    zlib.createBrotliDecompress([options])#

                                    中英对照

                                      创建并返回新的 BrotliDecompress 对象。

                                      zlib.createDeflate([options])#

                                      中英对照

                                        创建并返回新的 Deflate 对象。

                                        zlib.createDeflateRaw([options])#

                                        中英对照

                                          创建并返回新的 DeflateRaw 对象。

                                          zlib.createGunzip([options])#

                                          中英对照

                                            创建并返回新的 Gunzip 对象。

                                            zlib.createGzip([options])#

                                            中英对照

                                              创建并返回新的 Gzip 对象。 查看示例

                                              zlib.createInflate([options])#

                                              中英对照

                                                创建并返回新的 Inflate 对象。

                                                zlib.createInflateRaw([options])#

                                                中英对照

                                                  创建并返回新的 InflateRaw 对象。

                                                  zlib.createUnzip([options])#

                                                  中英对照

                                                    创建并返回新的 Unzip 对象。

                                                    便捷方法#

                                                    中英对照

                                                    所有这些都将 BufferTypedArrayDataViewArrayBuffer 或字符串作为第一个参数,可选的第二个参数为 zlib 类提供选项,并将使用 callback(error, result) 调用提供的回调。

                                                    zlib.brotliCompress(buffer[, options], callback)#

                                                    zlib.brotliCompressSync(buffer[, options])#

                                                    中英对照

                                                      使用 BrotliCompress 压缩数据块。

                                                      zlib.brotliDecompress(buffer[, options], callback)#

                                                      zlib.brotliDecompressSync(buffer[, options])#

                                                      中英对照

                                                        使用 BrotliDecompress 解压缩数据块。

                                                        zlib.deflate(buffer[, options], callback)#

                                                        中英对照

                                                          zlib.deflateSync(buffer[, options])#

                                                          中英对照

                                                            使用 Deflate 压缩数据块。

                                                            zlib.deflateRaw(buffer[, options], callback)#

                                                            中英对照

                                                              zlib.deflateRawSync(buffer[, options])#

                                                              中英对照

                                                                使用 DeflateRaw 压缩数据块。

                                                                zlib.gunzip(buffer[, options], callback)#

                                                                中英对照

                                                                  zlib.gunzipSync(buffer[, options])#

                                                                  中英对照

                                                                    使用 Gunzip 解压缩数据块。

                                                                    zlib.gzip(buffer[, options], callback)#

                                                                    中英对照

                                                                      zlib.gzipSync(buffer[, options])#

                                                                      中英对照

                                                                        使用 Gzip 压缩数据块。

                                                                        zlib.inflate(buffer[, options], callback)#

                                                                        中英对照

                                                                          zlib.inflateSync(buffer[, options])#

                                                                          中英对照

                                                                            使用 Inflate 解压缩数据块。

                                                                            zlib.inflateRaw(buffer[, options], callback)#

                                                                            中英对照

                                                                              zlib.inflateRawSync(buffer[, options])#

                                                                              中英对照

                                                                                使用 InflateRaw 解压缩数据块。

                                                                                zlib.unzip(buffer[, options], callback)#

                                                                                中英对照

                                                                                  zlib.unzipSync(buffer[, options])#

                                                                                  中英对照

                                                                                    使用 Unzip 解压缩数据块。

                                                                                    返回顶部