Compression Streams

CompressionStream and DecompressionStream for gzip, deflate, Brotli, and Zstandard.

CompressionStream and DecompressionStream are globals that take a format token:

FormatToken
Gzipgzip
Zlib-wrapped deflatedeflate
Raw deflatedeflate-raw
Brotlibrotli
Zstandardzstd
const compressed = new Blob(["hello"]).stream().pipeThrough(new CompressionStream("zstd"));

Differences from browsers

  • brotli and zstd are Elide additions.
  • Tokens are case-sensitive; an unknown token throws TypeError.
  • Chunks must be BufferSource values.
  • Malformed or truncated input rejects, as does decompressed output past a size limit.

For Buffer and callback APIs, see node:zlib.