lzbase62
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/lzbase62 package

2.0.0 • Public • Published

lzbase62

LZ77(LZSS) based compression algorithm in base62 for JavaScript.

NPM Version Build Status Bundle Size (minified) GitHub License

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

Installation

npm

$ npm install --save lzbase62

Usage

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

node

const lzbase62 = require('lzbase62');
const compressed = lzbase62.compress('hello hello hello');

webpack etc.

import lzbase62 from 'lzbase62';
const compressed = lzbase62.compress('hello hello hello');

browser (standalone)

<script src="lzbase62.min.js"></script>
<script>
var compressed = lzbase62.compress('hello hello hello');
</script> 

Object lzbase62 is defined in the global scope if running in the browser window. ( window.lzbase62 )

API


lzbase62.compress(data, [options])

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

var compressed = lzbase62.compress('abcabcabcabcabc');
console.log(compressed); // 'tRSTxDM'

Compress data using onData events

var string = 'hello hello hello';
var compressed = [];
 
lzbase62.compress(string, {
  onData: function(data) {
    compressed.push(data);
  },
  onEnd: function() {
    console.log(compressed.join('')); // 'tYVccfrgxGL'
  }
});

lzbase62.decompress(data, [options])

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

var decompressed = lzbase62.decompress('tRSTxDM');
console.log(decompressed); // 'abcabcabcabcabc'

Decompress data using onData events

var compressed = 'tYVccfrgxGL';
var decompressed = [];
 
lzbase62.decompress(compressed, {
  onData: function(data) {
    decompressed.push(data);
  },
  onEnd: function() {
    console.log(decompressed.join('')); // 'hello hello hello'
  }
});

License

MIT

Package Sidebar

Install

npm i lzbase62

Weekly Downloads

309

Version

2.0.0

License

MIT

Unpacked Size

48 kB

Total Files

12

Last publish

Collaborators

  • polygonplanet