10 people following this project (follow)

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.

Last edited Dec 11 2010 at 4:37 PM by Keru, version 7