Coder Social home page Coder Social logo

abouteiller-niji / compress-brotli Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kikobeats/compress-brotli

0.0 0.0 0.0 65 KB

Simple cross Node.js inteface for using brotli compression

Home Page: https://nicedoc.io/Kikobeats/compress-brotli

License: MIT License

JavaScript 100.00%

compress-brotli's Introduction

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 · Twitter @Kikobeats

compress-brotli's People

Contributors

kikobeats avatar kudla avatar dependabot[bot] avatar abouteiller-niji avatar dependabot-preview[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.