Repository URL to install this package:
|
Version:
3.1.7 ▾
|
| .. |
| bin |
| ChangeLog.md |
| LICENSE |
| README.en.md |
| README.md |
| package.json |
zlib.js is ZLIB(RFC1950), DEFLATE(RFC1951), GZIP(RFC1952) and PKZIP implementation in JavaScript.
Use one in "bin" directory.
// plain = Array.<number> or Uint8Array var deflate = new Zlib.RawDeflate(plain); var compressed = deflate.compress();
See ZLIB Option.
// plain = Array.<number> or Uint8Array var deflate = new Zlib.Deflate(plain); var compressed = deflate.compress();
Second argument of Zlib.Deflate constructor
{ compressionType: Zlib.Deflate.CompressionType, // compression type lazy: number // lazy matching parameter }
Zlib.Deflate.CompressionType is enumerable, Choose one in NONE (Store), FIXED (Fixed Huffman Coding), DYNAMIC (Dynamic Huffman Coding). Default value is DYNAMIC.
lazy is Lazy Matching length. This parameter is deprecated.
GZIP implementation is incomplete. However, there is no problem in usual use.
// plain = Array.<number> or Uint8Array var gzip = new Zlib.Gzip(plain); var compressed = gzip.compress();
{ deflateOptions: Object, // see: deflate option (ZLIB Option) flags: { fname: boolean, // use filename? comment: boolean, // use comment? fhcrc: boolean // use file checksum? }, filename: string, // filename comment: string // comment }
var zip = new Zlib.Zip(); // plainData1 zip.addFile(plainData1, { filename: stringToByteArray('foo.txt') }); zip.addFile(plainData2, { filename: stringToByteArray('bar.txt') }); zip.addFile(plainData3, { filename: stringToByteArray('baz.txt') }); var compressed = zip.compress(); function stringToByteArray(str) { var array = new (window.Uint8Array !== void 0 ? Uint8Array : Array)(str.length); var i; var il; for (i = 0, il = str.length; i < il; ++i) { array[i] = str.charCodeAt(i) & 0xff; } return array; }
filename, comment, extraField are must use Uint8Array if enabled Typed Array.
{ filename: (Array.<number>|Uint8Array), // filename comment: (Array.<number>|Uint8Array), //comment extraField: (Array.<number>|Uint8Array), // extra field compress: boolean, // compress when called "addFile" method. compressionMethod: Zlib.Zip.CompressionMethod, // STORE or DEFLATE os: Zlib.Zip.OperatingSystem, // MSDOS or UNIX or MACINTOSH deflateOption: Object // see: ZLIB Option }
// compressed = Array.<number> or Uint8Array var inflate = new Zlib.RawInflate(compressed); var plain = inflate.decompress();
See ZLIB Option.
// compressed = Array.<number> or Uint8Array var inflate = new Zlib.Inflate(compressed); var plain = inflate.decompress();
Second argument of Zlib.Inflate constructor
{ 'index': number, // start position in input buffer 'bufferSize': number, // initial output buffer size 'bufferType': Zlib.Inflate.BufferType, // buffer expantion type 'resize': boolean, // resize buffer(ArrayBuffer) when end of decompression (default: false) 'verify': boolean // verify decompression result (default: false) }
Zlib.Inflate.BufferType is enumerable. Choose one ADAPTIVE(default) and BLOCK.
// compressed = Array.<number> or Uint8Array var gunzip = new Zlib.Gunzip(compressed); var plain = gunzip.decompress();
// compressed = Array.<number> or Uint8Array var unzip = new Zlib.Unzip(compressed); var filenames = unzip.getFilenames(); var plain = unzip.decompress(filenames[0]);
see unit tests. https://github.com/imaya/zlib.js/blob/master/test/node-test.js
If you want to know the code before compile, SourceMaps and PrettyPrint can be used.
If you want to use the Source Map, use dev version.
For example, you want to use Inflate with Source Map.
- inflate.min.js // release version
- inflate.dev.min.js // development version <- use this
zlib.pretty.js is not renamed symbol.
Build using Grunt and Closure Compiler.
Use "grunt" command.
$ grunt [target]
| target | generate file | implementation |
|---|---|---|
| deps | deps.js | (dependency: deps.js) |
| deflate | deflate.min.js | ZLIB Deflate |
| inflate | inflate.min.js | ZLIB Inflate |
| inflate_stream | inflate_stream.min.js | ZLIB Inflate (stream) |
| zlib | zlib.min.js | ZLIB Deflate + Inflate |
| gzip | gzip.min.js | GZIP Compression |
| gunzip | gunzip.min.js | GZIP Decompression |
| zlib_and_gzip | zlib_and_gzip.min.js | ZLIB + GZIP |
| node | node-zlib.js | ZLIB + GZIP for node.js |
| zip | zip.min.js | PKZIP Compression |
| unzip | unzip.min.js | PKZIP Decompression |
| all | * | default target |
Unit tests are using Karma and mocha.
$ npm test
$ npm run test-karma
$ npm run test-mocha
Preset dictionary is not implemented.
Copyright © 2012 imaya. Licensed under the MIT License.