compress
Compression and decompression streams for gzip, deflate, brotli, and zstd.
Install
npm install @datastream/compress gzip
gzipCompressStream Transform
| Option | Type | Default | Description |
|---|---|---|---|
quality | number | -1 | Compression level (-1 to 9). -1 = default, 0 = none, 9 = best |
gzipDecompressStream Transform
No options required.
Example
import { pipeline } from '@datastream/core'
import { fileReadStream, fileWriteStream } from '@datastream/file'
import { gzipCompressStream, gzipDecompressStream } from '@datastream/compress'
// Compress
await pipeline([
fileReadStream({ path: './data.csv' }),
gzipCompressStream({ quality: 9 }),
fileWriteStream({ path: './data.csv.gz' }),
])
// Decompress
await pipeline([
fileReadStream({ path: './data.csv.gz' }),
gzipDecompressStream(),
fileWriteStream({ path: './data.csv' }),
]) deflate
deflateCompressStream Transform
| Option | Type | Default | Description |
|---|---|---|---|
quality | number | -1 | Compression level (-1 to 9) |
deflateDecompressStream Transform
No options required.
brotli
brotliCompressStream Transform
| Option | Type | Default | Description |
|---|---|---|---|
quality | number | 11 | Compression level (0 to 11) |
brotliDecompressStream Transform
No options required.
zstd Node.js only
Requires Node.js with zstd support.
zstdCompressStream Transform
| Option | Type | Default | Description |
|---|---|---|---|
quality | number | 3 | Compression level |
zstdDecompressStream Transform
No options required.
Platform support
| Algorithm | Node.js | Browser |
|---|---|---|
| gzip | node:zlib | CompressionStream |
| deflate | node:zlib | CompressionStream |
| brotli | node:zlib | CompressionStream |
| zstd | node:zlib | Not supported |