A JavaScript library for compressing and decompressing strings using an original algorithm based on the LZ algorithm
npm install lzjslzjs
========

lzjs is a JavaScript library that compresses and decompresses strings using an original algorithm based on the LZ algorithm.
This can be particularly useful when storing large amounts of data in storage with size limitations, such as localStorage or cookies.
``bash`
$ npm install --save lzjs
#### using import
`javascript`
import lzjs from 'lzjs';
#### using require
`javascript`
const lzjs = require('lzjs');
You can install the library via npm or download it from the release list. Use the lzjs.js or lzjs.min.js files included in the package. git clone
\Please note that if you use , even the master* branch may be under development.
`html`lzjs.min.js
or the minified :
`html`
When the script is loaded, the lzjs object is defined in the global scope (i.e., window.lzjs).
* compress
* decompress
* compressToBase64
* decompressFromBase64
----
Compresses data into a binary string.
#### Arguments
data (string|Buffer)* : Input data
[options] (object)* : Compression options
onData (function (data) {})* : Called when a data is chunked
onEnd (function () {})* : Called when process ends
#### Returns
(string) : Compressed data
#### Example
Example of compressing and decompressing a string.
`javascript
const data = 'hello hello hello';
const compressed = lzjs.compress(data);
console.log(compressed); // 'Whello \x80\x82\x84\x86\x83'
const decompressed = lzjs.decompress(compressed);
console.log(decompressed === data); // true
`
Compress data using onData and onEnd events.
`javascript
const string = 'hello hello hello';
const compressed = [];
lzjs.compress(string, {
onData: (data) => {
compressed.push(data);
},
onEnd: () => {
console.log(compressed.join('')); // 'Whello \x80\x82\x84\x86\x83'
}
});
`
----
Decompresses a string that has been compressed with lzjs.compress()
#### Arguments
data (string)* : Input data
[options] (object)* : Decompression options
onData (function (data) {})* : Called when a data is chunked
onEnd (function () {})* : Called when process ends
#### Returns
(string) : Decompressed data
#### Example
Example of decompressing a string that has been compressed with lzjs.compress().
`javascript`
const decompressed = lzjs.decompress('Wabc\x80\x82\x81\x83\x83');
console.log(decompressed); // 'abcabcabcabcabc'
Decompress data using onData and onEnd events.
`javascript
const compressed = 'Whello \x80\x82\x84\x86\x83';
const decompressed = [];
lzjs.decompress(compressed, {
onData: (data) => {
decompressed.push(data);
},
onEnd: () => {
console.log(decompressed.join('')); // 'hello hello hello'
}
});
`
----
Compresses and encodes data into a Base64 string.
#### Arguments
data (string|Buffer)* : Input data
#### Returns
(string) : Compressed and Base64 encoded string
#### Example
`javascript`
const data = 'hello hello hello';
const compressed = lzjs.compressToBase64(data);
console.log(compressed); // 'V2hlbGxvIMKAwoLChMKGwoM='
----
Decompresses a string that has been compressed with lzjs.compressToBase64().
#### Arguments
data (string)* : Input data
#### Returns
(string) : Decompressed data
#### Example
`javascript`
const decompressed = lzjs.decompressFromBase64('V2FiY8KAwoLCgcKDwoM=');
console.log(decompressed); // 'abcabcabcabcabc'
After npm install -g lzjs
#### Add file to archive
`bash`
lzjs -a something.txt
#### Extract file
`bash`
lzjs -x something.txt.lzjs
``
-h, --help show Help
-v, --version show Version
-a, --add
-x, --extract
Note that command line compression is only valid for the UTF-8 encoded file.
We welcome contributions from everyone.
For bug reports and feature requests, please create an issue on GitHub.
Before submitting a pull request, please run $ npm run test` to ensure there are no errors.
We only accept pull requests that pass all tests.
This project is licensed under the terms of the MIT license.
See the LICENSE file for details.