My Blog

My WordPress Blog

My Blog

My WordPress Blog

Node.js ZLIB

The Node.js Zlib module is used to provide compression and decompression (zip and unzip) functionalities. It is implemented using Gzip and deflate/inflate.

The zlib module can be accessed using:

const zlib = require('zlib');  

Compressing and decompressing a file can be done by piping the source stream data into a destination stream through zlib stream.

Node.js ZLIB Example: Compress File

Let’s see a simple example of Node.js ZLIB module to compress a file “input.txt” into “input.txt.gz”.

File: zlib_example1.js

const zlib = require('zlib');  

const gzip = zlib.createGzip();  

const fs = require('fs');  

const inp = fs.createReadStream('input.txt');  

const out = fs.createWriteStream('input.txt.gz');  

inp.pipe(gzip).pipe(out);

We have a text file named “input.txt” on the desktop.

Node.js zlib example 1

Open Node.js command prompt and run the following code:

node zlib_example1.js  
Node.js zlib example 2

You can see that it will produce a compressed file named “input.txt.gz” on the desktop.

Node.js zlib example 3

Node.js ZLIB Example: Decompress File

Let’s see a simple example of Node.js ZLIB module to decompress a file “input.txt.gz” into “input2.txt”.

File: zlib_example2.js

const zlib = require('zlib');    

const unzip = zlib.createUnzip();  

const fs = require('fs');  

const inp = fs.createReadStream('input.txt.gz');  

const out = fs.createWriteStream('input2.txt');  

  

inp.pipe(unzip).pipe(out)
node zlib_example2.js  

Now you will see that same code of “input.txt” is available into “input2.txt” file.

To understand this example well, create “input.txt” file having a large amount of data. Let’s assume it has 40 kb data. After compressing this file you will get the size of compressed file “input.txt.gz” to 1 kb only. After decompressing the “input.txt.gz” file, you will get 40 kb of same data into “input2.txt” file.

Node.js ZLIB

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top