You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1.6 KiB

go-lzo

Build status Coverage Status

Native LZO1X implementation in Golang

This code has been written using the original LZO1X source code as a reference, to study and understand the algorithms. Both the LZO1X-1 and LZO1X-999 algorithms are implemented. These are the most popular of the whole LZO suite of algorithms.

Being a straightforward port of the original source code, it shares the same license (GPLv2) as I can't possibly claim any copyright on it.

I plan to eventually reimplement LZO1X-1 from scratch. At that point, I will be also changing license.

Benchmarks

These are the benchmarks obtained running the testsuite over the Canterbury corpus for the available compressor levels:

Compressor Level Original Compressed Factor Time Speed
LZO1X-1 - 18521760 8957481 51.6% 0.16s 109MiB/s
LZO1X-999 1 18521760 8217347 55.6% 1.38s 13MiB/s
LZO1X-999 2 18521760 7724879 58.3% 1.50s 12MiB/s
LZO1X-999 3 18521760 7384377 60.1% 1.68s 10MiB/s
LZO1X-999 4 18521760 7266674 60.8% 1.69s 10MiB/s
LZO1X-999 5 18521760 6979879 62.3% 2.75s 6.4MiB/s
LZO1X-999 6 18521760 6938593 62.5% 4.53s 3.9MiB/s
LZO1X-999 7 18521760 6905362 62.7% 6.94s 2.5MiB/s
LZO1X-999 8 18521760 6713477 63.8% 20.96s 863KiB/s
LZO1X-999 9 18521760 6712069 63.8% 22.82s 792KiB/s