QuickLZ 1.4.x
Home   |   Commercial License   |   Changelog   |   User Testimonials   |   Contact

BETA VERSIONS

1.5.0

Version QuickLZ 1.5.0 beta 2
26-Oct-2009
Download quicklz150beta2.zip

The C version improves compression speed of level 1 by yet another 13 - 28% on 64-bit architectures and slightly on 32-bit architectures - yay! Decompression speeds and level 2 and 3 are unchanged.

Added support for level 3 to the C# and Java versions.

The C version now takes qlz_state_compress and qlz_state_decompress structs as argument instead of char *scratch buffers. This has cleaned up pointer arithmetic and #ifdef alot. A simple sample program to compress and decompress a string now looks like:

#include "quicklz.h"

int main ()
{
  qlz_state_compress *state_compress = (qlz_state_compress *)malloc(sizeof(qlz_state_compress));
  qlz_state_decompress *state_decompress = (qlz_state_decompress *)malloc(sizeof(qlz_state_decompress));

  char original[] = "LZ compression finds repeated strings: Five, six, seven, eight, nine, fifteen, sixteen, seventeen, fifteen, sixteen, seventeen.";

  // Always allocate size + 400 bytes for the destination buffer when compressing.
  char *compressed = (char *)malloc(strlen(original) + 400);
  char *decompressed = (char *)malloc(strlen(original));
  int r;

  r = qlz_compress(original, compressed, strlen(original), state_compress);
  printf("Compressed %d bytes into %d bytes.\n", strlen(original), r);

  r = qlz_decompress(compressed, decompressed, state_decompress);
  printf("Decompressed back to %d bytes.\n", r);

  return 0;
}