Package detail

compress-brotli

Kikobeats1.2mMIT1.3.13

Simple cross Node.js inteface for using brotli compression

api, brotli, compress, compressed

readme

compress-brotli

Last version Coverage Status NPM Status

Compress/Decompress using Brotli in a simple way.

Highlights

  • Handle edge cases (such as try to compress undefined).
  • JSON serialization/deserialization with Buffer support by default.
  • Easy tu customize (e.g., using v8 serialization).

Install

$ npm install compress-brotli --save

Usage

const createCompress = require('compress-brotli')

// It exposes compress/decompress methods
const { compress, decompress } = createCompress()

using v8 serialization:

const createCompress = require('compress-brotli')
const v8 = require('v8')

const { compress, decompress } = createCompress({
  serialize: v8.serialize,
  deserialize: v8.deserialize
})

customizing compress options:

const createCompress = require('compress-brotli')

const {
  constants: {
    BROTLI_MODE_TEXT,
    BROTLI_PARAM_MODE,
    BROTLI_PARAM_QUALITY
  }
} = require('zlib')

// Provide factory level default options
const { compress, decompress } = createCompress({
  compressOptions: {
    chunkSize: 1024,
    parameters: {
      [BROTLI_PARAM_MODE]: BROTLI_MODE_TEXT
    }
  },
  decompressOptions: {
    chunkSize: 1024,
    parameters: {
      [BROTLI_PARAM_MODE]: BROTLI_MODE_TEXT
    }
  }
})
const data = 'whatever'

// Override call level options (deep merge for parameters)
const compressed = compress(data, {
  parameters: {
    [BROTLI_PARAM_QUALITY]: 7
  }
})
decompress(compressed, {
  chunkSize: 2048
})

API

compressBrotli([options])

enable

Type: boolean
Default: false

If pass disable, it will return a noop compress/decompress methods.

serialize

Type: function
Default: JSONB.stringify

It determines the serialize method to use before compress the data.

deserialize

Type: function
Default: JSONB.parse

It determines the deserialize method to use after decompress the data.

compressOptions

Type: zlib.BrotliOptions
Default: {} i.e. default zlib.brotliCompress options will be used

It defines default options to be used in wrapped zlib.brotliCompress call

decompressOptions

Type: zlib.BrotliOptions
Default: {} i.e. default zlib.brotliDecompress options will be used

It defines default options to be used in wrapped zlib.brotliDecompress call

License

compress-brotli © Kiko Beats, released under the MIT License.
Authored and maintained by Kiko Beats with help from contributors.

kikobeats.com · GitHub Kiko Beats · X @Kikobeats

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

1.3.13 (2025-05-24)

1.3.12 (2023-10-24)

1.3.11 (2023-09-07)

1.3.10 (2023-09-07)

1.3.9 (2023-07-05)

1.3.8 (2022-05-06)

1.3.7 (2022-05-06)

1.3.6 (2022-03-02)

1.3.5 (2022-02-25)

1.3.4 (2022-02-25)

1.3.3 (2021-09-01)

1.3.2 (2021-08-21)

1.3.1 (2021-08-21)

1.3.0 (2021-03-30)

1.2.2 (2020-04-23)

1.2.1 (2019-11-04)

1.2.0 (2019-11-04)

Features

1.1.0 (2019-11-01)

Features

  • add buffer stringify support (67757a8)

1.0.8 (2019-09-21)

Bug Fixes

1.0.7 (2019-06-19)

Build System

1.0.6 (2019-05-20)

Build System

  • change git-authors-cli position (c92f52e)

1.0.5 (2019-04-11)

Bug Fixes

  • expose serialize/deserialize in noop (8afc3f4)

1.0.4 (2019-04-11)

1.0.3 (2019-04-11)

1.0.2 (2019-04-06)

Bug Fixes

1.0.1 (2019-04-06)

Bug Fixes

1.0.0 (2019-04-06)