Skip to content
This repository has been archived by the owner on Sep 15, 2019. It is now read-only.
/ zlib-sync Public archive
forked from abalabahaha/zlib-sync

Synchronous zlib for NodeJS

License

Notifications You must be signed in to change notification settings

Vexera/zlib-sync

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zlib-sync

Synchronous zlib bindings for NodeJS

Originally made for JS libraries interacting with the Discord gateway, where compression requires a shared zlib context in a synchronous fashion.

Features

  • Synchronous, Pako-like API

  • Near-native performance and efficiency

Installing

zlib-sync is a native module, so it requires node-gyp to be installed, which requires Python 2.7 and a C++ compiler on your system. See the node-gyp documentation for more info. A pre-built module is planned for a future update.

After getting node-gyp set up, install zlib-sync like a normal NPM package:

npm install zlib-sync

Usage

Documentation can be found here.

var ZlibSync = require("zlib-sync");

var inflate = new ZlibSync.Inflate();

inflate.push(compressedChunk1);
inflate.push(compressedChunk2, ZlibSync.Z_SYNC_FLUSH);

if(inflate.err < 0) {
    throw new Error("zlib error: " + inflate.msg);
}

var result = inflate.result;

console.log(result.toString());

To-Do

  • Deflate stream support
  • One-time deflate/inflate support

License

Refer to the LICENSE file.

About

Synchronous zlib for NodeJS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 70.6%
  • JavaScript 24.8%
  • Python 4.6%