项目简介
本项目是基于Node.js的LZMA压缩库,能对.xz
和.lzma
文件格式进行压缩与解压缩。该库借助Node.js接口调用底层的liblzma压缩库,支持流式处理以及直接的字符串/Buffer处理。
项目的主要特性和功能
- 支持对
.xz
和.lzma
文件进行压缩与解压缩。 - 提供流式压缩和解压缩接口,适合大文件处理。
- 可直接对字符串或Buffer对象进行压缩和解压缩。
- 支持liblzma的多线程编码功能,提高压缩效率。
- 能够解析
.xz
文件的元数据,如文件大小、压缩块信息等。
安装使用步骤
安装
- 确保已安装Node.js环境。
- 使用npm安装本项目:
bash npm install --save lzma-native
使用示例
流式压缩与解压缩
```javascript const lzma = require('lzma-native'); const fs = require('fs');
// 压缩 const compressor = lzma.createCompressor(); const input = fs.createReadStream('README.md'); const output = fs.createWriteStream('README.md.xz'); input.pipe(compressor).pipe(output);
// 解压缩 const decompressor = lzma.createDecompressor(); const inputXZ = fs.createReadStream('README.md.xz'); const outputMD = fs.createWriteStream('README_decompressed.md'); inputXZ.pipe(decompressor).pipe(outputMD); ```
直接压缩与解压缩字符串/Buffer
```javascript const lzma = require('lzma-native');
// 压缩字符串 lzma.compress('Banana', function(result) { console.log(result); // 输出压缩后的Buffer });
// 解压缩Buffer lzma.decompress(result, function(decompressedResult) { console.log(decompressedResult.toString()); // 输出解压缩后的字符串 }); ```
多线程压缩
```javascript const lzma = require('lzma-native');
const compressor = lzma.createCompressor({ threads: 4 }); // 使用4个线程进行压缩 const input = fs.createReadStream('largefile.txt'); const output = fs.createWriteStream('largefile.txt.xz'); input.pipe(compressor).pipe(output); ```
文件元数据解析
```javascript const lzma = require('lzma-native'); const fs = require('fs');
fs.readFile('test/hamlet.txt.xz', function(err, content) { if (err) throw err;
lzma.parseFileIndex({
fileSize: content.length,
read: function(count, offset, cb) {
cb(content.slice(offset, offset + count));
}
}, function(err, info) {
if (err) throw err;
console.log(info); // 输出文件的元数据信息
});
}); ``` 通过以上步骤,可在Node.js项目中使用本库进行LZMA压缩和解压缩操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】