All Projects → polygonplanet → lzbase62

polygonplanet / lzbase62

Licence: MIT License
LZ77(LZSS) based compression algorithm in base62 for JavaScript.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to lzbase62

ZipArchive
A single-class pure VB6 library for zip with ASM speed
Stars: ✭ 38 (+0%)
Mutual labels:  compression, zip, zlib, compress
Minizip Ng
Fork of the popular zip manipulation library found in the zlib distribution.
Stars: ✭ 750 (+1873.68%)
Mutual labels:  compression, zip, zlib
Base62x
Base62x is an alternative approach to Base 64 without symbols in output.
Stars: ✭ 38 (+0%)
Mutual labels:  base64, base62, base62x
Zippy
Pure Nim implementation of deflate, zlib, gzip and zip.
Stars: ✭ 88 (+131.58%)
Mutual labels:  compression, zip, zlib
Datacompression
Swift libcompression wrapper as an extension for the Data type (GZIP, ZLIB, LZFSE, LZMA, LZ4, deflate, RFC-1950, RFC-1951, RFC-1952)
Stars: ✭ 191 (+402.63%)
Mutual labels:  compression, zip, zlib
decompress
Pure OCaml implementation of Zlib.
Stars: ✭ 103 (+171.05%)
Mutual labels:  compression, zlib, lz77
Turbobench
Compression Benchmark
Stars: ✭ 211 (+455.26%)
Mutual labels:  compression, zip, zlib
Compress.js
A simple JavaScript based client-side image compression algorithm
Stars: ✭ 86 (+126.32%)
Mutual labels:  base64, compression, compress
zpacker
very simple LZ77-based compression
Stars: ✭ 15 (-60.53%)
Mutual labels:  compression, lz77
Perfect-Zip
Perfect Zip compression utility.
Stars: ✭ 20 (-47.37%)
Mutual labels:  compression, zip
PLzmaSDK
PLzmaSDK is (Portable, Patched, Package, cross-P-latform) Lzma SDK.
Stars: ✭ 28 (-26.32%)
Mutual labels:  compression, compress
raisin
A simple lightweight set of implementations and bindings for compression algorithms written in Go.
Stars: ✭ 17 (-55.26%)
Mutual labels:  compression, lzss
unzip
Tiny unzip helper class for .NET 3.5 Client Profile and Mono 2.10, written in pure C#.
Stars: ✭ 25 (-34.21%)
Mutual labels:  compression, zip
minizip-asm.js
Minizip in javascript. Work with password. Demo:
Stars: ✭ 38 (+0%)
Mutual labels:  zip, compress
http compression
🗜️ Deno HTTP compression middleware
Stars: ✭ 34 (-10.53%)
Mutual labels:  compression, compress
box
Box - Open Standard Archive Format, a zip killer.
Stars: ✭ 38 (+0%)
Mutual labels:  compression, zip
deflate-rs
An implementation of a DEFLATE encoder in rust
Stars: ✭ 47 (+23.68%)
Mutual labels:  compression, zlib
x-compressor
x – minimalist data compressor
Stars: ✭ 42 (+10.53%)
Mutual labels:  compression, compression-algorithm
react-native-compressor
The lightweight library for compress image, video, and audio with an awesome experience
Stars: ✭ 157 (+313.16%)
Mutual labels:  compression, compress
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (+471.05%)
Mutual labels:  compression, zip

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].