1.0.2 • Published 6 months ago

stringcompression v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
6 months ago

String compression is the process of reducing the size of text data to optimize storage space or transmission.

Install

npm install stringcompression

Functions

The following functions are available:

  • encodeKeys(input): Encodes the keys in the input text using a predefined dictionary. Words in the input that match a key in the dictionary are replaced with a caret symbol (^) followed by the corresponding key.

  • decodeKeys(input): Decodes the keys in the input text using a predefined dictionary. Words in the input that start with a caret symbol (^) followed by a key are replaced with the corresponding value from the dictionary.

  • compressIt(input): Performs a series of encoding operations on the input text. It applies the Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) encoding, Elias Gamma Coding (EGC), and Bijective Ternary Transformation (BTT) using the provided keys and dictionary.

  • decompressIt(input): Performs a series of decoding operations on the input code. It reverses the encoding operations applied by the encodeIt function using the provided keys and dictionary.

Usage

To use these functions in your JavaScript code, you can require the module and call the desired functions:

const { encodeKeys, decodeKeys, compressIt, decompressIt } = require('stringcompression');

// perform dynamic compress - Stable

const encodedText = compressIt('Hello, world!');
console.log(encodedText); // Outputs: encoded text

const decodedText = decompressIt(encodedText);
console.log(decodedText); // Outputs: 'Hello, world!'

// perform dictionary compress - Experimental

const encoded = encodeKeys('Hello, world!');
console.log(encoded); // Outputs: 'Hello, ^WRUJ^RBT^'

const decoded = decodeKeys('Hello, ^WRUJ^RBT^');
console.log(decoded); // Outputs: 'Hello, world!'

// learn how to combine both

const text = `Through fields resplendent, we gallivant,
Embracing nature's whispered chant.
In twilight's embrace, we find solace,
Our bond, unbreakable and flawless.

Through tempests fierce and trials dire,
You ignite within me a ceaseless fire.
With valor true, you stand by my side,
A guardian, my soul's eternal guide.

So, let us revel in this sacred dance,
For in your presence, I find enhanced,
A love profound, beyond all measure,
Woven with words, woven with treasure.`;

// compressoons and decompressions
const { encodeKeys, decodeKeys } = require('./index.js');

const { compressIt, decompressIt } = require('./index.js');

const keys = encodeKeys(text);

console.log('\n\n', keys.length, keys);

const code = compressIt(keys);

console.log('\n\n', code.length, code);

console.log(`        `);

const decode = decompressIt(code);

console.log('\n\n', decode.length, decode);

const decodx = decodeKeys(decode);

console.log('\n\n', decodx.length, decodx);

Results

stringcompression

1.0.2

6 months ago

1.0.1

10 months ago

1.0.0

10 months ago