Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
lzma-native
Advanced tools
Provides bindings to the native liblzma library
The simplest possible usage:
var lzma = require('lzma-native');
var encoder = lzma.createStream();
process.stdin.pipe(encoder).pipe(process.stdout);
This mimicks the functionality of the xz
command line util.
Equivalently, one could have written
var encoder = lzma.createStream('easyEncoder', {preset: lzma.PRESET_DEFAULT, check: lzma.CHECK_CRC32})
or, for stronger and slower compression:
var encoder = lzma.createStream('easyEncoder', {preset: 9})
Here easyEncoder
corresponds to the xz
command line util, resp. its file format .xz.
For the older .lzma
format, you can just use aloneEncoder
instead.
The API is loosely based on the native API, with a few bits of wrapper code added for convenience.
Methods like stream.code
and lzma.crc32
accept Node.js Buffer
s as arguments.
Unless you set .synchronous = true
in createStream
s second parameter, the library will use its
own thread for compression (if compiled with support for that).
The encoder
object here is an instance of stream.Duplex
(see the Node.js docs),
so you could also manually perform any of the write and read operations that you’re familiar with on it.
Encoders and decoders you probably are interested in:
easyEncoder
: Creates .xz
files. Supports .preset
and .check
options.aloneEncoder
: Creates .lzma
files. Supports .preset
and a bunch of very specific options (see the liblzma C headers for details)autoDecoder
: Supports various flags. Detects input type automatically.That is, the following is essentially (quite a slow version of) cat
:
var encoder = lzma.createStream('easyEncoder');
var decoder = lzma.createStream('autoDecoder');
process.stdin.pipe(encoder).pipe(decoder).pipe(process.stdout);
If you know specifically what you want, you may also look into these encoders:
rawDecoder
: Supports .filters
.rawEncoder
: Supports .filters
.streamEncoder
: Supports .filters
and .check
.streamDecoder
: Supports various flags.aloneDecoder
: Supports various flags.Also, all encoders accept a .memlimit
option.
This package requires that you have the corresponding C library installed,
e. g. via sudo apt-get install liblzma-dev
or your equivalent of that.
You can also download the source from the original author.
Once you have the library, npm install lzma-native
will do.
You may also need a somewhat recent C++ compiler, and asynchronous
compression support requires std::thread
, which is included in C++11
(but is not essential for compiling).
FAQs
Provides bindings to the native liblzma library (.xz file format, among others)
We found that lzma-native demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.