CompressionStream: CompressionStream() constructor

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨May 2023⁩.

* Some parts of this feature may have varying levels of support.

Note: This feature is available in Web Workers.

The CompressionStream() constructor creates a new CompressionStream object which compresses a stream of data.

Syntax

js
new CompressionStream(format)

Parameters

format

One of the following allowed compression formats:

"brotli"

Compresses the stream using the Brotli algorithm.

"gzip"

Compresses the stream using the GZIP format.

"deflate"

Compresses the stream using the DEFLATE algorithm in ZLIB Compressed Data Format. The ZLIB format includes a header with information about the compression method and the uncompressed size of the data, and a trailing checksum for verifying the integrity of the data

"deflate-raw"

Compresses the stream using the DEFLATE algorithm without a header and trailing checksum.

"zstd"

Compresses the stream using the ZSTD algorithm.

Exceptions

TypeError

Thrown if the format passed to the constructor is not supported.

Examples

In this example a stream is compressed using gzip compression.

js
const compressedReadableStream = inputReadableStream.pipeThrough(
  new CompressionStream("gzip"),
);

Specifications

Specification
Compression
# dom-compressionstream-compressionstream

Browser compatibility