node:zlib поддерживает API на функциях обратного вызова, синхронные и потоковые API.
| Семейство | Поддержка |
|---|---|
| Deflate | Функции сжатия/распаковки с обёрткой и без, варианты Sync, классы и функции create* |
| Gzip | Gzip, gunzip, unzip, варианты Sync, классы и функции create* |
| Brotli | Функции сжатия/распаковки, классы и функции create* |
| Zstandard | Функции сжатия/распаковки, классы и функции create* |
| Утилиты | crc32, constants и codes |
const zlib = require("node:zlib");
const input = Buffer.from("hello, zlib!");
const gzip = zlib.gzipSync(input);
zlib.gunzipSync(gzip).toString(); // "hello, zlib!"
const zstd = zlib.zstdCompressSync(input);
zlib.zstdDecompressSync(zstd).toString(); // "hello, zlib!"Формы с функциями обратного вызова получают (error, result); синхронные формы возвращают
Buffer или выбрасывают исключение.
node:zlib/iter
Специфичный для Elide модуль итераторов предоставляет фабрики преобразований для gzip,
deflate, raw deflate, Brotli и Zstandard. Фабрика возвращает объект с
.transform(asyncIterable); результат поступает пакетами фрагментов байтов.
import { gzip } from "node:zlib/iter";
async function* input() {
yield new TextEncoder().encode("hello");
}
for await (const batch of gzip().transform(input())) {
for (const chunk of batch) {
// compressed bytes
}
}С Web Streams используйте потоки сжатия.
См. также
Reference
Status: Partial · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
deflateSync() | function | Full | Compress data using the deflate algorithm (RFC 1951 wrapped in zlib format RFC 1950) |
inflateSync() | function | Full | Decompress data that was compressed with deflate (zlib format) |
deflateRawSync() | function | Full | Compress data using the deflate algorithm in raw mode (no zlib header, RFC 1951) |
inflateRawSync() | function | Full | Decompress raw deflate data (no zlib header) |
gzipSync() | function | Full | Compress data using gzip (RFC 1952) |
gunzipSync() | function | Full | Decompress gzip data (RFC 1952) |
brotliCompressSync() | function | Full | Compress data using the Brotli algorithm (RFC 7932) |
brotliDecompressSync() | function | Full | Decompress Brotli-compressed data (RFC 7932) |
unzipSync() | function | Full | Decompress data with automatic format detection (gzip or deflate) |
constants | property | Full | The constants object exposes zlib, Brotli, and Zstd numeric constants |
| top-level constants | constant | Partial | Z_NO_COMPRESSION, Z_BEST_SPEED, Z_BEST_COMPRESSION, Z_DEFAULT_COMPRESSION, Z_FILTERED, Z_HUFFMAN_ONLY and 73 more |
Not implemented
107 top-level constants such as DEFLATE.