Introduction to lzma-native
The lzma-native module is a powerful and efficient solution for file compression and decompression in Node.js applications. Utilizing the LZMA algorithm, this module provides fast and robust compression capabilities.
API Examples
One of the core features of lzma-native is its versatile API. Here are several useful APIs explained with code snippets:
1. Compressing Data
Using the compress
function:
const lzma = require('lzma-native'); const data = Buffer.from('Hello, LZMA!'); lzma.compress(data, 1, (result, error) => { if (error) throw error; console.log('Compressed:', result); });
2. Decompressing Data
Using the decompress
function:
const lzma = require('lzma-native'); const compressedData = Buffer.from('...'); lzma.decompress(compressedData, (result, error) => { if (error) throw error; console.log('Decompressed:', result.toString()); });
3. Compressing Files
Using the createCompressor
stream:
const fs = require('fs'); const lzma = require('lzma-native'); const input = fs.createReadStream('input.txt'); const output = fs.createWriteStream('output.txt.xz'); input.pipe(lzma.createCompressor()).pipe(output);
4. Decompressing Files
Using the createDecompressor
stream:
const fs = require('fs'); const lzma = require('lzma-native'); const input = fs.createReadStream('output.txt.xz'); const output = fs.createWriteStream('decompressed.txt'); input.pipe(lzma.createDecompressor()).pipe(output);
5. Handling Streams
Using the createStream
method:
const lzma = require('lzma-native'); const compressor = lzma.createStream('easyEncoder', { preset: 9 }); compressor.on('data', (chunk) => { console.log('Compressed chunk:', chunk); }); compressor.write(Buffer.from('Stream data')); compressor.end();
Application Example
Let’s explore a complete application that demonstrates both compression and decompression with lzma-native:
const fs = require('fs'); const lzma = require('lzma-native'); // Compress a file const compressFile = () => { const input = fs.createReadStream('example.txt'); const output = fs.createWriteStream('example.txt.xz'); input.pipe(lzma.createCompressor()).pipe(output).on('finish', () => { console.log('File compressed successfully.'); decompressFile(); }); }; // Decompress a file const decompressFile = () => { const input = fs.createReadStream('example.txt.xz'); const output = fs.createWriteStream('example_decompressed.txt'); input.pipe(lzma.createDecompressor()).pipe(output).on('finish', () => { console.log('File decompressed successfully.'); }); }; // Start the compression compressFile();
By following these examples and using the lzma-native module’s API, you can easily integrate high-performance compression and decompression to optimize your Node.js applications.
Hash: 3bab67f051920c004f8a6e6bb576a953781855fd3e5d98577fecdb1bb47fb311