compress

Compression and decompression streams for gzip, deflate, brotli, and zstd.

Install

npm install @datastream/compress

gzip

gzipCompressStream Transform

OptionTypeDefaultDescription
qualitynumber-1Compression 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

OptionTypeDefaultDescription
qualitynumber-1Compression level (-1 to 9)

deflateDecompressStream Transform

No options required.

brotli

brotliCompressStream Transform

OptionTypeDefaultDescription
qualitynumber11Compression level (0 to 11)

brotliDecompressStream Transform

No options required.

zstd Node.js only

Requires Node.js with zstd support.

zstdCompressStream Transform

OptionTypeDefaultDescription
qualitynumber3Compression level

zstdDecompressStream Transform

No options required.

Platform support

AlgorithmNode.jsBrowser
gzipnode:zlibCompressionStream
deflatenode:zlibCompressionStream
brotlinode:zlibCompressionStream
zstdnode:zlibNot supported