Project Description
Improved C# LZF Compressor, a very small and extremely efficient real-time data compression library. The compression algorithm is extremely fast. Well suited for real-time data intensive applications (e.g.: packet streaming, embedded devices...). Last
not least, it is freely usable, unlike most other compression libraries which are under the GPL, this library uses a BSD-type license, so you can include it in your programs without worrying.
This project is a port of Mark Lehmann's LibLZF: http://oldhome.schmorp.de/marc/liblzf.html and an improved version of first Oren J. Maurice's C# port back in 2005.
This project is written and maintained by Roman Atachiants (kelindar@gmail.com).
Features
- Small code size (less then 500 lines files and docs).
- Very fast compression speeds, rivaling a straight copy loop, especially for decompression which is basically at (unoptimized) memcpy-speed. Compression speed can be increased by 20% by sacrificing a few percent of compression ratio.
- Mediocre compression ratios - you can usually expect about 40-50% compression for typical binary data
- Easy to use
- Highly portable
- Freely usable (BSD-type-license)
- No unsafe calls
Benchmark
| |
Compression |
Decompression |
| LZF C# |
Raw = 152089, Compressed = 101092
Time = 33,0019 ms.
|
Time = 15,0009 ms. |
| Original CLZF C# |
Raw = 152089, Compressed = 101092
Time = 8292,4743 ms. |
Time = 16,0009 ms. |
| QuickLZ C# |
Raw = 152089, Compressed = 83494
Time = 80,0046 ms. |
Time = 21,0012 ms. |
| Zlib using SharpZipLib |
Raw = 152089, Compressed = 54388
Time = 8389,4799 ms. |
Time = 3577,2046 ms. |