Node.js v26.0.0 說明文件
- Node.js v26.0.0
- 目錄
- 反覆運算壓縮 (Iterable Compression)
compressBrotli([options])compressBrotliSync([options])compressDeflate([options])compressDeflateSync([options])compressGzip([options])compressGzipSync([options])compressZstd([options])compressZstdSync([options])decompressBrotli([options])decompressBrotliSync([options])decompressDeflate([options])decompressDeflateSync([options])decompressGzip([options])decompressGzipSync([options])decompressZstd([options])decompressZstdSync([options])
- 反覆運算壓縮 (Iterable Compression)
- 索引
- 關於此說明文件
- 用法與範例
- 斷言測試
- 非同步內容追蹤
- Async hooks
- Buffer
- C++ 擴充套件
- 使用 Node-API 的 C/C++ 擴充套件
- C++ 嵌入器 API
- 子程序
- 叢集
- 命令列選項
- Console
- Crypto
- 除錯器
- 棄用的 API
- Diagnostics Channel
- DNS
- 網域 (Domain)
- 環境變數
- 錯誤
- 事件
- 檔案系統
- 全域變數
- HTTP
- HTTP/2
- HTTPS
- 檢查器
- 國際化
- 模組:CommonJS 模組
- 模組:ECMAScript 模組
- 模組:
node:moduleAPI - 模組:套件
- 模組:TypeScript
- Net
- Iterable Streams API
- OS
- Path
- 效能勾子 (Performance hooks)
- 權限
- 程序
- Punycode
- 查詢字串
- Readline
- REPL
- 報告
- 單一可執行應用程式
- SQLite
- Stream
- 字串解碼器
- 測試執行器
- 計時器
- TLS/SSL
- 追蹤事件
- TTY
- UDP/資料報
- URL
- 公用工具
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- 工作執行緒
- Zlib
- Zlib 可反覆運算壓縮
- 其他版本
- 選項
可迭代物件壓縮#
穩定性:1 - 實驗性
node:zlib/iter 模組提供了用於 node:stream/iter 可迭代串流 API 的壓縮與解壓縮轉換功能。
此模組僅在啟用 --experimental-stream-iter CLI 旗標時可用。
每種演算法皆同時具備非同步版本(有狀態的非同步產生器,供 pull() 與 pipeTo() 使用)與同步版本(有狀態的同步產生器,供 pullSync() 與 pipeToSync() 使用)。
非同步轉換會將壓縮運作於 libuv 執行緒池(threadpool)中,使 I/O 操作與 JavaScript 執行重疊。同步轉換則直接在主執行緒上進行壓縮。
注意:這些轉換的預設值皆針對串流傳輸量(streaming throughput)進行調校,與
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'; // Async round-trip const compressed = await bytes(pull(from('hello'), compressGzip())); const original = await text(pull(from(compressed), decompressGzip())); console.log(original); // 'hello'const { from, pull, bytes, text } = require('node:stream/iter'); const { compressGzip, decompressGzip } = require('node:zlib/iter'); async function run() { const compressed = await bytes(pull(from('hello'), compressGzip())); const original = await text(pull(from(compressed), decompressGzip())); console.log(original); // 'hello' } run().catch(console.error);
import { fromSync, pullSync, textSync } from 'node:stream/iter'; import { compressGzipSync, decompressGzipSync } from 'node:zlib/iter'; // Sync round-trip const compressed = pullSync(fromSync('hello'), compressGzipSync()); const original = textSync(pullSync(compressed, decompressGzipSync())); console.log(original); // 'hello'const { fromSync, pullSync, textSync } = require('node:stream/iter'); const { compressGzipSync, decompressGzipSync } = require('node:zlib/iter'); const compressed = pullSync(fromSync('hello'), compressGzipSync()); const original = textSync(pullSync(compressed, decompressGzipSync())); console.log(original); // 'hello'
compressBrotli([options])#
compressBrotliSync([options])#
options<Object>chunkSize<number>輸出緩衝區大小。預設值:65536(64 KB)。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 MB)。Brotli 函式庫預設值為 22 (4 MB);降低預設值可節省記憶體,且對串流工作負載的壓縮影響不大。BROTLI_PARAM_LGBLOCK-- 輸入區塊大小 (log2)。完整列表請參閱 zlib 文件中的 Brotli 壓縮器選項。
dictionary<Buffer>|<TypedArray>|<DataView>
- 回傳值:
<Object>一個有狀態的轉換器。
建立一個 Brotli 壓縮轉換器。輸出與 zlib.brotliDecompress() 及 decompressBrotli()/decompressBrotliSync() 相容。
compressDeflate([options])#
compressDeflateSync([options])#
options<Object>chunkSize<number>輸出緩衝區大小。預設值:65536(64 KB)。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 KB)。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 KB)。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。完整列表請參閱 zlib 文件中的 Zstd 壓縮器選項。
pledgedSrcSize<number>預期的未壓縮大小(選用提示)。dictionary<Buffer>|<TypedArray>|<DataView>
- 回傳值:
<Object>一個有狀態的轉換器。
建立一個 Zstandard 壓縮轉換器。輸出與 zlib.zstdDecompress() 及 decompressZstd()/decompressZstdSync() 相容。
decompressBrotli([options])#
decompressBrotliSync([options])#
options<Object>chunkSize<number>輸出緩衝區大小。預設值:65536(64 KB)。params<Object>鍵值對物件,其中鍵與值皆為zlib.constants的項目。可用的解壓縮器參數如下:BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION-- 影響內部記憶體配置的布林旗標。BROTLI_DECODER_PARAM_LARGE_WINDOW-- 啟用「大視窗 Brotli (Large Window Brotli)」模式的布林旗標(與 RFC 7932 不相容)。詳細資訊請參閱 zlib 文件中的 Brotli 解壓縮器選項。
dictionary<Buffer>|<TypedArray>|<DataView>
- 回傳值:
<Object>一個有狀態的轉換器。
建立一個 Brotli 解壓縮轉換器。
decompressDeflate([options])#
decompressDeflateSync([options])#
options<Object>chunkSize<number>輸出緩衝區大小。預設值:65536(64 KB)。windowBits<number>預設值:Z_DEFAULT_WINDOWBITS(15)。dictionary<Buffer>|<TypedArray>|<DataView>
- 回傳值:
<Object>一個有狀態的轉換器。
建立一個 deflate 解壓縮轉換器。
decompressGzip([options])#
decompressGzipSync([options])#
options<Object>chunkSize<number>輸出緩衝區大小。預設值:65536(64 KB)。windowBits<number>預設值:Z_DEFAULT_WINDOWBITS(15)。dictionary<Buffer>|<TypedArray>|<DataView>
- 回傳值:
<Object>一個有狀態的轉換器。
建立一個 gzip 解壓縮轉換器。
decompressZstd([options])#
decompressZstdSync([options])#
options<Object>chunkSize<number>輸出緩衝區大小。預設值:65536(64 KB)。params<Object>鍵值對物件,其中鍵與值皆為zlib.constants的項目。可用的解壓縮器參數如下:ZSTD_d_windowLogMax-- 解壓縮器將配置的最大視窗大小 (log2)。用於限制惡意輸入對記憶體的使用量。詳細資訊請參閱 zlib 文件中的 Zstd 解壓縮器選項。
dictionary<Buffer>|<TypedArray>|<DataView>
- 回傳值:
<Object>一個有狀態的轉換器。
建立一個 Zstandard 解壓縮轉換器。