inelo / numco
NUMber COmpressor - small library for numeric arrays compression.
Installs: 14 868
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 7
Forks: 2
Open Issues: 0
Requires
- php: ^7.3 || ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.6
This package is auto-updated.
Last update: 2025-03-01 00:21:55 UTC
README
A small compression/decompression library for numerical arrays. Its best suited for large data sets of integers.
How it works
Internally this lib creates a delta encoded array and then deflates it using zlib.
Delta encoding is one of the most powerfull numeric compression methods out there. Its a simple algorithm that converts values in given array so that each represents a difference from the previous value.
Delta encoding example:
[100, 101, 102, 103, 104, 105] converts to [100, 1, 1, 1, 1, 1]
Charts
(the more sequential data the better compression ratio)
Mini DOC
Compression
Numco::compress(array) : string
expects array of numbers as argument and returns compressed base64 encoded string
Decompression
Numco::decompress(string) : array
expects compressed base64 encoded string and returns decompressed array of numbers
Composer Installation
$ composer require inelo/numco
Example usage
use Inelo\Numco\Numco;
$numArray = [ 100, 101, 102, ... ];
$compressed = Numco::compress($numArray);
$decompressed = Numco::decompress($compressed);
echo "compressed base64 encoded string : " . $compressed . "\n";
echo "decompressed array : " . var_export($decompressed, true) . "\n";
Running tests
vendor/bin/phpunit tests
Release History
- 1.0.0 Initial release