You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					61 lines
				
				1.9 KiB
			
		
		
			
		
	
	
					61 lines
				
				1.9 KiB
			| 
											3 years ago
										 | # minizlib
 | ||
|  | 
 | ||
|  | A 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) and | ||
|  | [minipass-fetch](http://npm.im/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](http://npm.im/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
 | ||
|  | 
 | ||
|  | ```js | ||
|  | 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'. |