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.
npm i --save easy-compress
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>
`
*/
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)));
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
- Web:
- HTML
- JS
- CSS
- Backend-JS (Node)
- PHP
Beginning of File/String/Whatever was encoded: %$?S%
(gets added and removed automatically, $
contains the escape char)
Syntax: $lc
$
: the set / default (¤
) escape charl
: the language char from the table belowc
: a character from one of the js files in the regexes folder
(%
,?
andS
are fixed chars)
Language | Char |
---|---|
HTML | h |
Web-JavaScript | j |
CSS | c |
Language | Char |
---|---|
PHP | p |
NodeJS | J |