LZ77(LZSS) based compression algorithm in base62 for JavaScript
npm install lzbase62lzbase62
========
LZ77(LZSS) based compression algorithm in base62 for JavaScript.




The compressed result will be a string in base 62 (0-9A-Za-z) characters.
This is useful when storing large amounts of data in size-limited storage such as localStorage or cookies.
* Demo
``bash`
$ npm install --save lzbase62
`javascript
var data = 'hello hello hello';
console.log(data.length); // 17
var compressed = lzbase62.compress(data);
console.log(compressed); // 'tYVccfrgxGL'
console.log(compressed.length); // 11
console.log(compressed.length < data.length); // true
var decompressed = lzbase62.decompress(compressed);
console.log(decompressed); // 'hello hello hello'
console.log(decompressed === data); // true
`
`javascript`
const lzbase62 = require('lzbase62');
const compressed = lzbase62.compress('hello hello hello');
`javascript`
import lzbase62 from 'lzbase62';
const compressed = lzbase62.compress('hello hello hello');
`html`
Object lzbase62 is defined in the global scope if running in the browser window. ( window.lzbase62 )
----
Compress data to a base62 [0-9a-zA-Z] encoded string.
#### Arguments
data (string)* : Input data
[options] (object)* : Compress options
onData (function (data) {})* : Called when a data is chunked
onEnd (function () {})* : Called when process is finished
#### Returns
(string) : Compressed data
#### Example
Compress string
`javascript`
var compressed = lzbase62.compress('abcabcabcabcabc');
console.log(compressed); // 'tRSTxDM'
Compress data using onData events
`javascript
var string = 'hello hello hello';
var compressed = [];
lzbase62.compress(string, {
onData: function(data) {
compressed.push(data);
},
onEnd: function() {
console.log(compressed.join('')); // 'tYVccfrgxGL'
}
});
`
----
Decompress data from a base62 [0-9a-zA-Z] encoded string.
#### Arguments
data (string)* : Input data
[options] (object)* : Decompress options
onData (function (data) {})* : Called when a data is chunked
onEnd (function () {})* : Called when process is finished
#### Returns
(string) : Decompressed data
#### Example
Decompress string
`javascript`
var decompressed = lzbase62.decompress('tRSTxDM');
console.log(decompressed); // 'abcabcabcabcabc'
Decompress data using onData events
`javascript
var compressed = 'tYVccfrgxGL';
var decompressed = [];
lzbase62.decompress(compressed, {
onData: function(data) {
decompressed.push(data);
},
onEnd: function() {
console.log(decompressed.join('')); // 'hello hello hello'
}
});
``
MIT