Socket
Socket
Sign inDemoInstall

minizlib

Package Overview
Dependencies
2
Maintainers
6
Versions
22
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    minizlib

A small fast zlib stream built on [minipass](http://npm.im/minipass) and Node.js's zlib binding.


Version published
Weekly downloads
23M
increased by2.4%
Maintainers
6
Install size
70.5 kB
Created
Weekly downloads
 

Package description

What is minizlib?

The minizlib npm package is a minimal implementation of zlib bindings for Node.js, providing compression and decompression functionalities in a lightweight and efficient manner. It is designed to be faster and less memory-intensive than the native Node.js zlib module for certain use cases.

What are minizlib's main functionalities?

Compression

This feature allows you to compress data using the Deflate algorithm. The code sample demonstrates how to compress a simple string.

const { Deflate } = require('minizlib');
const input = Buffer.from('Hello World');
const deflate = new Deflate();
deflate.push(input, true); // true indicates this is the last chunk
if (deflate.err) { throw new Error(deflate.msg); }
const output = deflate.result;

Decompression

This feature enables you to decompress data that was compressed using the Deflate algorithm. The code sample shows how to decompress data to its original form.

const { Inflate } = require('minizlib');
const input = Buffer.from([/* Compressed data here */]);
const inflate = new Inflate();
inflate.push(input, true); // true indicates this is the last chunk
if (inflate.err) { throw new Error(inflate.msg); }
const output = inflate.result;

Other packages similar to minizlib

Readme

Source

minizlib

A fast zlib stream built on minipass and Node.js's zlib binding.

This module was created to serve the needs of node-tar and minipass-fetch.

Brotli is supported in versions of node with a Brotli binding.

How does this differ from the streams in require('zlib')?

First, there are no convenience methods to compress or decompress a buffer. If you want those, use the built-in zlib module. This is only streams. That being said, Minipass streams to make it fairly easy to use as one-liners: new zlib.Deflate().end(data).read() will return the deflate compressed result.

This module compresses and decompresses the data as fast as you feed it in. It is synchronous, and runs on the main process thread. Zlib and Brotli operations can be high CPU, but they're very fast, and doing it this way means much less bookkeeping and artificial deferral.

Node's built in zlib streams are built on top of stream.Transform. They do the maximally safe thing with respect to consistent asynchrony, buffering, and backpressure.

See Minipass for more on the differences between Node.js core streams and Minipass streams, and the convenience methods provided by that class.

Classes

  • Deflate
  • Inflate
  • Gzip
  • Gunzip
  • DeflateRaw
  • InflateRaw
  • Unzip
  • BrotliCompress (Node v10 and higher)
  • BrotliDecompress (Node v10 and higher)

USAGE

const zlib = require('minizlib')
const input = sourceOfCompressedData()
const decode = new zlib.BrotliDecompress()
const output = whereToWriteTheDecodedData()
input.pipe(decode).pipe(output)

REPRODUCIBLE BUILDS

To create reproducible gzip compressed files across different operating systems, set portable: true in the options. This causes minizlib to set the OS indicator in byte 9 of the extended gzip header to 0xFF for 'unknown'.

Keywords

FAQs

Last updated on 14 Aug 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc