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
						
					
					
				| # 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'.
 |