Compression Streams API
Baseline 2023Newly available
Since May 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Note: This feature is available in Web Workers.
The Compression Streams API provides a JavaScript API for compressing and decompressing streams of data using the gzip or deflate formats.
Built in compression means that JavaScript applications will not need to include a compression library, which makes the download size of the application smaller.
Interfaces
CompressionStream
-
Compresses a stream of data.
DecompressionStream
-
Decompresses a stream of data.
Examples
In this example a stream is compressed using gzip compression.
const compressedReadableStream = inputReadableStream.pipeThrough(
new CompressionStream("gzip"),
);
In the following example a function decompresses a blob using gzip.
async function DecompressBlob(blob) {
const ds = new DecompressionStream("gzip");
const decompressedStream = blob.stream().pipeThrough(ds);
return await new Response(decompressedStream).blob();
}
Specifications
Specification |
---|
Compression # compression-stream |
Browser compatibility
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CompressionStream | ||||||||||||||
CompressionStream() constructor | ||||||||||||||
"deflate" compression | ||||||||||||||
"deflate-raw" compression | ||||||||||||||
"gzip" compression | ||||||||||||||
readable | ||||||||||||||
writable |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- Partial support
- Partial support
- Has more compatibility info.