Skip to main content

Usage in Deno

import * as mod from "node:zlib";

The node:zlib module provides compression functionality implemented using Gzip, Deflate/Inflate, and Brotli.

To access it:

import zlib from 'node:zlib';

Compression and decompression are built around the Node.js Streams API.

Compressing or decompressing a stream (such as a file) can be accomplished by piping the source stream through a zlib Transform stream into a destination stream:

import { createGzip } from 'node:zlib';
import { pipeline } from 'node:stream';
import {
  createReadStream,
  createWriteStream,
} from 'node:fs';

const gzip = createGzip();
const source = createReadStream('input.txt');
const destination = createWriteStream('input.txt.gz');

pipeline(source, gzip, destination, (err) => {
  if (err) {
    console.error('An error occurred:', err);
    process.exitCode = 1;
  }
});

// Or, Promisified

import { promisify } from 'node:util';
const pipe = promisify(pipeline);

async function do_gzip(input, output) {
  const gzip = createGzip();
  const source = createReadStream(input);
  const destination = createWriteStream(output);
  await pipe(source, gzip, destination);
}

do_gzip('input.txt', 'input.txt.gz')
  .catch((err) => {
    console.error('An error occurred:', err);
    process.exitCode = 1;
  });

It is also possible to compress or decompress data in a single step:

import { deflate, unzip } from 'node:zlib';

const input = '.................................';
deflate(input, (err, buffer) => {
  if (err) {
    console.error('An error occurred:', err);
    process.exitCode = 1;
  }
  console.log(buffer.toString('base64'));
});

const buffer = Buffer.from('eJzT0yMAAGTvBe8=', 'base64');
unzip(buffer, (err, buffer) => {
  if (err) {
    console.error('An error occurred:', err);
    process.exitCode = 1;
  }
  console.log(buffer.toString());
});

// Or, Promisified

import { promisify } from 'node:util';
const do_unzip = promisify(unzip);

do_unzip(buffer)
  .then((buf) => console.log(buf.toString()))
  .catch((err) => {
    console.error('An error occurred:', err);
    process.exitCode = 1;
  });

Functions

f
brotliCompress
No documentation available
    f
    brotliCompressSync

    Compress a chunk of data with BrotliCompress.

      f
      brotliDecompress
      No documentation available
        f
        brotliDecompressSync

        Decompress a chunk of data with BrotliDecompress.

          f
          crc32

          Computes a 32-bit Cyclic Redundancy Check checksum of data. If value is specified, it is used as the starting value of the checksum, otherwise, 0 is used as the starting value.

            f
            createBrotliCompress

            Creates and returns a new BrotliCompress object.

              f
              createBrotliDecompress

              Creates and returns a new BrotliDecompress object.

                f
                createDeflate

                Creates and returns a new Deflate object.

                  f
                  createDeflateRaw

                  Creates and returns a new DeflateRaw object.

                    f
                    createGunzip

                    Creates and returns a new Gunzip object.

                      f
                      createGzip

                      Creates and returns a new Gzip object. See example.

                        f
                        createInflate

                        Creates and returns a new Inflate object.

                          f
                          createInflateRaw

                          Creates and returns a new InflateRaw object.

                            f
                            createUnzip

                            Creates and returns a new Unzip object.

                              f
                              deflate
                              No documentation available
                                f
                                deflateRaw
                                No documentation available
                                  f
                                  deflateRawSync

                                  Compress a chunk of data with DeflateRaw.

                                    f
                                    deflateSync

                                    Compress a chunk of data with Deflate.

                                      f
                                      gunzip
                                      No documentation available
                                        f
                                        gunzipSync

                                        Decompress a chunk of data with Gunzip.

                                          f
                                          gzip
                                          No documentation available
                                            f
                                            gzipSync

                                            Compress a chunk of data with Gzip.

                                              f
                                              inflate
                                              No documentation available
                                                f
                                                inflateRaw
                                                No documentation available
                                                  f
                                                  inflateRawSync

                                                  Decompress a chunk of data with InflateRaw.

                                                    f
                                                    inflateSync

                                                    Decompress a chunk of data with Inflate.

                                                      f
                                                      unzip
                                                      No documentation available
                                                        f
                                                        unzipSync

                                                        Decompress a chunk of data with Unzip.

                                                          Interfaces

                                                          I
                                                          BrotliCompress
                                                          No documentation available
                                                            I
                                                            BrotliDecompress
                                                            No documentation available
                                                              I
                                                              Deflate
                                                              No documentation available
                                                                I
                                                                DeflateRaw
                                                                No documentation available
                                                                  I
                                                                  Gunzip
                                                                  No documentation available
                                                                    I
                                                                    Gzip
                                                                    No documentation available
                                                                      I
                                                                      Inflate
                                                                      No documentation available
                                                                        I
                                                                        InflateRaw
                                                                        No documentation available
                                                                          I
                                                                          Unzip
                                                                          No documentation available
                                                                            I
                                                                            I
                                                                            ZlibParams
                                                                            No documentation available
                                                                            I
                                                                            ZlibReset
                                                                            No documentation available

                                                                            Namespaces

                                                                            N
                                                                            constants
                                                                            No documentation available

                                                                              Type Aliases

                                                                              T
                                                                              CompressCallback
                                                                              No documentation available
                                                                                T
                                                                                InputType
                                                                                No documentation available

                                                                                  Variables

                                                                                  v
                                                                                  constants.BROTLI_DECODE
                                                                                  No documentation available
                                                                                    v
                                                                                    constants.BROTLI_DECODER_NO_ERROR
                                                                                    No documentation available
                                                                                      v
                                                                                      constants.BROTLI_DECODER_RESULT_ERROR
                                                                                      No documentation available
                                                                                        v
                                                                                        constants.BROTLI_DECODER_RESULT_SUCCESS
                                                                                        No documentation available
                                                                                          v
                                                                                          constants.BROTLI_DECODER_SUCCESS
                                                                                          No documentation available
                                                                                            v
                                                                                            constants.BROTLI_DEFAULT_MODE
                                                                                            No documentation available
                                                                                              v
                                                                                              constants.BROTLI_DEFAULT_QUALITY
                                                                                              No documentation available
                                                                                                v
                                                                                                constants.BROTLI_DEFAULT_WINDOW
                                                                                                No documentation available
                                                                                                  v
                                                                                                  constants.BROTLI_ENCODE
                                                                                                  No documentation available
                                                                                                    v
                                                                                                    constants.BROTLI_LARGE_MAX_WINDOW_BITS
                                                                                                    No documentation available
                                                                                                      v
                                                                                                      constants.BROTLI_MAX_INPUT_BLOCK_BITS
                                                                                                      No documentation available
                                                                                                        v
                                                                                                        constants.BROTLI_MAX_QUALITY
                                                                                                        No documentation available
                                                                                                          v
                                                                                                          constants.BROTLI_MAX_WINDOW_BITS
                                                                                                          No documentation available
                                                                                                            v
                                                                                                            constants.BROTLI_MIN_INPUT_BLOCK_BITS
                                                                                                            No documentation available
                                                                                                              v
                                                                                                              constants.BROTLI_MIN_QUALITY
                                                                                                              No documentation available
                                                                                                                v
                                                                                                                constants.BROTLI_MIN_WINDOW_BITS
                                                                                                                No documentation available
                                                                                                                  v
                                                                                                                  constants.BROTLI_MODE_FONT
                                                                                                                  No documentation available
                                                                                                                    v
                                                                                                                    constants.BROTLI_MODE_GENERIC
                                                                                                                    No documentation available
                                                                                                                      v
                                                                                                                      constants.BROTLI_MODE_TEXT
                                                                                                                      No documentation available
                                                                                                                        v
                                                                                                                        v
                                                                                                                        constants.BROTLI_OPERATION_FINISH
                                                                                                                        No documentation available
                                                                                                                          v
                                                                                                                          constants.BROTLI_OPERATION_FLUSH
                                                                                                                          No documentation available
                                                                                                                            v
                                                                                                                            constants.BROTLI_OPERATION_PROCESS
                                                                                                                            No documentation available
                                                                                                                              v
                                                                                                                              constants.BROTLI_PARAM_LARGE_WINDOW
                                                                                                                              No documentation available
                                                                                                                                v
                                                                                                                                constants.BROTLI_PARAM_LGBLOCK
                                                                                                                                No documentation available
                                                                                                                                  v
                                                                                                                                  constants.BROTLI_PARAM_LGWIN
                                                                                                                                  No documentation available
                                                                                                                                    v
                                                                                                                                    constants.BROTLI_PARAM_MODE
                                                                                                                                    No documentation available
                                                                                                                                      v
                                                                                                                                      constants.BROTLI_PARAM_NDIRECT
                                                                                                                                      No documentation available
                                                                                                                                        v
                                                                                                                                        constants.BROTLI_PARAM_NPOSTFIX
                                                                                                                                        No documentation available
                                                                                                                                          v
                                                                                                                                          constants.BROTLI_PARAM_QUALITY
                                                                                                                                          No documentation available
                                                                                                                                            v
                                                                                                                                            constants.BROTLI_PARAM_SIZE_HINT
                                                                                                                                            No documentation available
                                                                                                                                              v
                                                                                                                                              constants.DEFLATE
                                                                                                                                              No documentation available
                                                                                                                                                v
                                                                                                                                                constants.DEFLATERAW
                                                                                                                                                No documentation available
                                                                                                                                                  v
                                                                                                                                                  constants.GUNZIP
                                                                                                                                                  No documentation available
                                                                                                                                                    v
                                                                                                                                                    constants.GZIP
                                                                                                                                                    No documentation available
                                                                                                                                                      v
                                                                                                                                                      constants.INFLATE
                                                                                                                                                      No documentation available
                                                                                                                                                        v
                                                                                                                                                        constants.INFLATERAW
                                                                                                                                                        No documentation available
                                                                                                                                                          v
                                                                                                                                                          constants.UNZIP
                                                                                                                                                          No documentation available
                                                                                                                                                            v
                                                                                                                                                            constants.Z_BEST_COMPRESSION
                                                                                                                                                            No documentation available
                                                                                                                                                              v
                                                                                                                                                              constants.Z_BEST_SPEED
                                                                                                                                                              No documentation available
                                                                                                                                                                v
                                                                                                                                                                constants.Z_BLOCK
                                                                                                                                                                No documentation available
                                                                                                                                                                  v
                                                                                                                                                                  constants.Z_BUF_ERROR
                                                                                                                                                                  No documentation available
                                                                                                                                                                    v
                                                                                                                                                                    constants.Z_DATA_ERROR
                                                                                                                                                                    No documentation available
                                                                                                                                                                      v
                                                                                                                                                                      constants.Z_DEFAULT_CHUNK
                                                                                                                                                                      No documentation available
                                                                                                                                                                        v
                                                                                                                                                                        constants.Z_DEFAULT_COMPRESSION
                                                                                                                                                                        No documentation available
                                                                                                                                                                          v
                                                                                                                                                                          constants.Z_DEFAULT_LEVEL
                                                                                                                                                                          No documentation available
                                                                                                                                                                            v
                                                                                                                                                                            constants.Z_DEFAULT_MEMLEVEL
                                                                                                                                                                            No documentation available
                                                                                                                                                                              v
                                                                                                                                                                              constants.Z_DEFAULT_STRATEGY
                                                                                                                                                                              No documentation available
                                                                                                                                                                                v
                                                                                                                                                                                constants.Z_DEFAULT_WINDOWBITS
                                                                                                                                                                                No documentation available
                                                                                                                                                                                  v
                                                                                                                                                                                  constants.Z_ERRNO
                                                                                                                                                                                  No documentation available
                                                                                                                                                                                    v
                                                                                                                                                                                    constants.Z_FILTERED
                                                                                                                                                                                    No documentation available
                                                                                                                                                                                      v
                                                                                                                                                                                      constants.Z_FINISH
                                                                                                                                                                                      No documentation available
                                                                                                                                                                                        v
                                                                                                                                                                                        constants.Z_FIXED
                                                                                                                                                                                        No documentation available
                                                                                                                                                                                          v
                                                                                                                                                                                          constants.Z_FULL_FLUSH
                                                                                                                                                                                          No documentation available
                                                                                                                                                                                            v
                                                                                                                                                                                            constants.Z_HUFFMAN_ONLY
                                                                                                                                                                                            No documentation available
                                                                                                                                                                                              v
                                                                                                                                                                                              constants.Z_MAX_CHUNK
                                                                                                                                                                                              No documentation available
                                                                                                                                                                                                v
                                                                                                                                                                                                constants.Z_MAX_LEVEL
                                                                                                                                                                                                No documentation available
                                                                                                                                                                                                  v
                                                                                                                                                                                                  constants.Z_MAX_MEMLEVEL
                                                                                                                                                                                                  No documentation available
                                                                                                                                                                                                    v
                                                                                                                                                                                                    constants.Z_MAX_WINDOWBITS
                                                                                                                                                                                                    No documentation available
                                                                                                                                                                                                      v
                                                                                                                                                                                                      constants.Z_MEM_ERROR
                                                                                                                                                                                                      No documentation available
                                                                                                                                                                                                        v
                                                                                                                                                                                                        constants.Z_MIN_CHUNK
                                                                                                                                                                                                        No documentation available
                                                                                                                                                                                                          v
                                                                                                                                                                                                          constants.Z_MIN_LEVEL
                                                                                                                                                                                                          No documentation available
                                                                                                                                                                                                            v
                                                                                                                                                                                                            constants.Z_MIN_MEMLEVEL
                                                                                                                                                                                                            No documentation available
                                                                                                                                                                                                              v
                                                                                                                                                                                                              constants.Z_MIN_WINDOWBITS
                                                                                                                                                                                                              No documentation available
                                                                                                                                                                                                                v
                                                                                                                                                                                                                constants.Z_NEED_DICT
                                                                                                                                                                                                                No documentation available
                                                                                                                                                                                                                  v
                                                                                                                                                                                                                  constants.Z_NO_COMPRESSION
                                                                                                                                                                                                                  No documentation available
                                                                                                                                                                                                                    v
                                                                                                                                                                                                                    constants.Z_NO_FLUSH
                                                                                                                                                                                                                    No documentation available
                                                                                                                                                                                                                      v
                                                                                                                                                                                                                      constants.Z_OK
                                                                                                                                                                                                                      No documentation available
                                                                                                                                                                                                                        v
                                                                                                                                                                                                                        constants.Z_PARTIAL_FLUSH
                                                                                                                                                                                                                        No documentation available
                                                                                                                                                                                                                          v
                                                                                                                                                                                                                          constants.Z_RLE
                                                                                                                                                                                                                          No documentation available
                                                                                                                                                                                                                            v
                                                                                                                                                                                                                            constants.Z_STREAM_END
                                                                                                                                                                                                                            No documentation available
                                                                                                                                                                                                                              v
                                                                                                                                                                                                                              constants.Z_STREAM_ERROR
                                                                                                                                                                                                                              No documentation available
                                                                                                                                                                                                                                v
                                                                                                                                                                                                                                constants.Z_SYNC_FLUSH
                                                                                                                                                                                                                                No documentation available
                                                                                                                                                                                                                                  v
                                                                                                                                                                                                                                  constants.Z_TREES
                                                                                                                                                                                                                                  No documentation available
                                                                                                                                                                                                                                    v
                                                                                                                                                                                                                                    constants.Z_VERSION_ERROR
                                                                                                                                                                                                                                    No documentation available
                                                                                                                                                                                                                                      v
                                                                                                                                                                                                                                      constants.ZLIB_VERNUM
                                                                                                                                                                                                                                      No documentation available
                                                                                                                                                                                                                                        v
                                                                                                                                                                                                                                        Z_ASCII
                                                                                                                                                                                                                                        No documentation available
                                                                                                                                                                                                                                          v
                                                                                                                                                                                                                                          Z_BEST_COMPRESSION
                                                                                                                                                                                                                                          No documentation available
                                                                                                                                                                                                                                            v
                                                                                                                                                                                                                                            Z_BEST_SPEED
                                                                                                                                                                                                                                            No documentation available
                                                                                                                                                                                                                                              v
                                                                                                                                                                                                                                              Z_BINARY
                                                                                                                                                                                                                                              No documentation available
                                                                                                                                                                                                                                                v
                                                                                                                                                                                                                                                Z_BLOCK
                                                                                                                                                                                                                                                No documentation available
                                                                                                                                                                                                                                                  v
                                                                                                                                                                                                                                                  Z_BUF_ERROR
                                                                                                                                                                                                                                                  No documentation available
                                                                                                                                                                                                                                                    v
                                                                                                                                                                                                                                                    Z_DATA_ERROR
                                                                                                                                                                                                                                                    No documentation available
                                                                                                                                                                                                                                                      v
                                                                                                                                                                                                                                                      Z_DEFAULT_COMPRESSION
                                                                                                                                                                                                                                                      No documentation available
                                                                                                                                                                                                                                                        v
                                                                                                                                                                                                                                                        Z_DEFAULT_STRATEGY
                                                                                                                                                                                                                                                        No documentation available
                                                                                                                                                                                                                                                          v
                                                                                                                                                                                                                                                          Z_DEFLATED
                                                                                                                                                                                                                                                          No documentation available
                                                                                                                                                                                                                                                            v
                                                                                                                                                                                                                                                            Z_ERRNO
                                                                                                                                                                                                                                                            No documentation available
                                                                                                                                                                                                                                                              v
                                                                                                                                                                                                                                                              Z_FILTERED
                                                                                                                                                                                                                                                              No documentation available
                                                                                                                                                                                                                                                                v
                                                                                                                                                                                                                                                                Z_FINISH
                                                                                                                                                                                                                                                                No documentation available
                                                                                                                                                                                                                                                                  v
                                                                                                                                                                                                                                                                  Z_FIXED
                                                                                                                                                                                                                                                                  No documentation available
                                                                                                                                                                                                                                                                    v
                                                                                                                                                                                                                                                                    Z_FULL_FLUSH
                                                                                                                                                                                                                                                                    No documentation available
                                                                                                                                                                                                                                                                      v
                                                                                                                                                                                                                                                                      Z_HUFFMAN_ONLY
                                                                                                                                                                                                                                                                      No documentation available
                                                                                                                                                                                                                                                                        v
                                                                                                                                                                                                                                                                        Z_MEM_ERROR
                                                                                                                                                                                                                                                                        No documentation available
                                                                                                                                                                                                                                                                          v
                                                                                                                                                                                                                                                                          Z_NEED_DICT
                                                                                                                                                                                                                                                                          No documentation available
                                                                                                                                                                                                                                                                            v
                                                                                                                                                                                                                                                                            Z_NO_COMPRESSION
                                                                                                                                                                                                                                                                            No documentation available
                                                                                                                                                                                                                                                                              v
                                                                                                                                                                                                                                                                              Z_NO_FLUSH
                                                                                                                                                                                                                                                                              No documentation available
                                                                                                                                                                                                                                                                                v
                                                                                                                                                                                                                                                                                Z_OK
                                                                                                                                                                                                                                                                                No documentation available
                                                                                                                                                                                                                                                                                  v
                                                                                                                                                                                                                                                                                  Z_PARTIAL_FLUSH
                                                                                                                                                                                                                                                                                  No documentation available
                                                                                                                                                                                                                                                                                    v
                                                                                                                                                                                                                                                                                    Z_RLE
                                                                                                                                                                                                                                                                                    No documentation available
                                                                                                                                                                                                                                                                                      v
                                                                                                                                                                                                                                                                                      Z_STREAM_END
                                                                                                                                                                                                                                                                                      No documentation available
                                                                                                                                                                                                                                                                                        v
                                                                                                                                                                                                                                                                                        Z_STREAM_ERROR
                                                                                                                                                                                                                                                                                        No documentation available
                                                                                                                                                                                                                                                                                          v
                                                                                                                                                                                                                                                                                          Z_SYNC_FLUSH
                                                                                                                                                                                                                                                                                          No documentation available
                                                                                                                                                                                                                                                                                            v
                                                                                                                                                                                                                                                                                            Z_TEXT
                                                                                                                                                                                                                                                                                            No documentation available
                                                                                                                                                                                                                                                                                              v
                                                                                                                                                                                                                                                                                              Z_TREES
                                                                                                                                                                                                                                                                                              No documentation available
                                                                                                                                                                                                                                                                                                v
                                                                                                                                                                                                                                                                                                Z_UNKNOWN
                                                                                                                                                                                                                                                                                                No documentation available
                                                                                                                                                                                                                                                                                                  v
                                                                                                                                                                                                                                                                                                  Z_VERSION_ERROR
                                                                                                                                                                                                                                                                                                  No documentation available
                                                                                                                                                                                                                                                                                                    Back to top