/ez-compress

Compress known sequences of chars a bit to lower the traffic between two devices. This is not really that practical, I just wanted to make my own compression for some reason.

Primary LanguageHTMLMIT LicenseMIT

easy-compress

Compress known sequences of chars a bit to lower the traffic between two devices. This is not really that practical, I just wanted to make my own compression for some reason.









Installation:

npm i --save easy-compress





Usage:

const ez = require("easy-compress");
const rawHTML = `
<!DOCTYPE html>
<html>
	<body>
		<div>Hello World!</div>
	</body>
</html>
`;

var compressedHTML = ez.encode.HTML(rawHTML);

/*   RESULT:
`
%¤?S%¤hd>
¤hh>
¤hº¤hb>
¤h¦¤hvHello World!¤hV
¤hº¤hB>
¤hH>
`
*/




Compressing multiple languages:

const ez = require("easy-compress");
const rawHTML = fs.readFileSync("./index.html"); // big HTML file with HTML, CSS and JS

var compressedHTML = ez.encode.HTML(ez.encode.CSS(ez.encode.JS(rawHTML)));

// WARNING!
// decode in the same sequence, else problems might occur
// example for this one:

var decompressedHTML = ez.decode.HTML(ez.decode.CSS(ez.decode.JS(compressedHTML)));




Changing the default char:

ez.changeChar("¥"); // this makes the package use "\u00A5" instead of the default "\u00A4" character
// (old compressions that use this char (¤) can't be decompressed with the new char)
// (to find out the char, parse the first line of the data which contains a known sequence that contains the char (see below for more info))
// best option is a char that is as high up as possible on this list (https://unicode-table.com/) and that doesn't at all occur in your to-be-compressed data









Supported Languages:

  • Web:
    • HTML
    • JS
    • CSS









Planned Languages:

  • Backend-JS (Node)
  • PHP




















Sequences:

Beginning of File/String/Whatever was encoded: %$?S% (gets added and removed automatically, $ contains the escape char)
Syntax: $lc

  • $: the set / default (¤) escape char
  • l: the language char from the table below
  • c: a character from one of the js files in the regexes folder
    (%, ? and S are fixed chars)

Language Chars:

Language Char
HTML h
Web-JavaScript j
CSS c

Planned:

Language Char
PHP p
NodeJS J