45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
# minizlib
|
|
|
|
A tiny fast zlib stream built on [minipass](http://npm.im/minipass)
|
|
and Node.js's zlib binding.
|
|
|
|
This module was created to serve the needs of
|
|
[node-tar](http://npm.im/tar) v2. If your needs are different, then
|
|
it may not be for you.
|
|
|
|
## 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.
|
|
|
|
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
|
|
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.
|
|
|
|
This module _does_ support backpressure, and will buffer output chunks
|
|
that are not consumed, but is less of a mediator between the input and
|
|
output. There is no high or low watermarks, no state objects, and so
|
|
artificial async deferrals. It will not protect you from Zalgo.
|
|
|
|
If you write, data will be emitted right away. If you write
|
|
everything synchronously in one tick, and you are listening to the
|
|
`data` event to consume it, then it'll all be emitted right away in
|
|
that same tick. If you want data to be emitted in the next tick, then
|
|
write it in the next tick.
|
|
|
|
It is thus the responsibility of the reader and writer to manage their
|
|
own consumption and process execution flow.
|
|
|
|
The goal is to compress and decompress as fast as possible, even for
|
|
files that are too large to store all in one buffer.
|
|
|
|
The API is very similar to the built-in zlib module. There are
|
|
classes that you instantiate with `new` and they are streams that can
|
|
be piped together.
|