LZMA SDK (Software Development Kit)

The LZMA SDK provides the documentation, samples, header files, libraries, and tools you need to develop applications that use LZMA compression.

Link Size Date Version Description
Download 292 KB 2007-12-12 4.57 LZMA SDK (C, C++, C#, Java)
Download 282 KB 2008-11-23 4.61 beta

What's new:

  • 4.61 beta: Some fixes. LZMA SDK is placed in the public domain.
  • 4.60 beta: Some fixes.
  • 4.59 beta: Some fixes.
  • 4.58 beta: Speed optimizations. New ANSI-C code for LZMA compression.
  • 4.57: Speed optimizations. Some fixes.
  • 4.49: .7z ANSI-C decoder was improved. C++ code for .7z archive handling was included.
  • 4.43: Small changes for more compatibility with some C/C++ compilers.
  • 4.42: Small changes in .h files in ANSI-C version.
  • 4.39: Some fixes in C++ code for latest beta versions.
  • 4.37: Some fixes in C++ code.
  • 4.35: Some fixes in C++ version of LZMA Decoder.
  • 4.34: Compression speed and memory requirements for compression were increased.
  • 4.32: Java version of LZMA SDK was included.

LZMA is the default and general compression method of 7z format in the 7-Zip program. LZMA provides a high compression ratio and very fast decompression, so it is very suitable for embedded applications. For example, it can be used for ROM (firmware) compressing.

LZMA SDK includes:

  • C++ source code of LZMA Encoder and Decoder
  • ANSI-C compatible source code for LZMA decompression with example
  • C# source code for LZMA compression and decompression
  • Java source code for LZMA compression and decompression
  • Compiled file->file LZMA compression/decompression program for the Windows operating system

ANSI-C LZMA decompression code is ported from the original C++ sources to C. Also, it has been simplified and optimized for code size. But it is fully compatible with LZMA from 7-Zip.

LZMA features:

  • Compression speed: 500 KB/s on 1 GHz CPU
  • Decompression speed:
    • 8-12 MB/s on 1 GHz Intel Pentium 3 or AMD Athlon.
    • 500-1000 KB/s on 100 MHz ARM, MIPS, PowerPC or other simple RISC CPU.
  • Small memory requirements for decompression: 8-32 KB + DictionarySize
  • Small code size for decompression: 2-8 KB (depending on speed optimizations)

The LZMA decoder uses only CPU integer instructions and can be implemented for any modern 32-bit CPU (or, on a 16-bit CPU with some conditions).

License

LZMA SDK 4.61 beta is placed in the public domain.

LZMA SDK 4.57 is available under any of the following licenses:

  1. GNU Lesser General Public License (GNU LGPL)
  2. Common Public License (CPL)
  3. Simplified license for unmodified code (read SPECIAL EXCEPTION)

This means that you can select one of these options and follow rules of that license.

SPECIAL EXCEPTION: Igor Pavlov, as the author of this code, expressly permit you statically or dynamically to link your code (or bind by name) to the files from LZMA SDK without subjecting your linked code to the terms of the CPL or GNU LGPL. Any modification or addition to any file in the LZMA SDK, however, is subject to the GNU LGPL or CPL terms.

This SPECIAL EXCEPTION allows you to use LZMA SDK in applications with proprietary code, provided you keep the LZMA SDK code unmodified.

SPECIAL EXCEPTION #2: Igor Pavlov, as the author of this code, expressly permits you to use LZMA SDK 4.57 and LZMA SDK 4.60 beta under the same terms and conditions contained in the License Agreement you have for any previous version of LZMA SDK developed by Igor Pavlov.

SPECIAL EXCEPTION #2 allows holders of proprietary licenses to use latest version of LZMA SDK as update for previous versions.

GNU LGPL and CPL are pretty similar and both these licenses are classified as free software licenses at http://www.gnu.org/ and OSI-approved at http://www.opensource.org/.

The source code of 7-Zip is released under the terms of the GNU LGPL. You can download the source code of 7-Zip at 7-Zip's Source Forge Page

LZMA Links


Copyright (C) 2008 Igor Pavlov.