The LZMA implementation extracted from
7-Zip is available as LZMA SDK. It was originally dual-licensed under both the
GNU LGPL and
Common Public License, with an additional special exception for linked binaries, but was placed by
Igor Pavlov in the
public domain on December 2, 2008, with the release of version 4.62. The reference
open source LZMA compression library was originally written in
C++ but has been ported to
ANSI C,
C#, and
Java.
Go and
Ada.{{cite web The 7-Zip implementation uses several variants of
hash chains,
binary trees and
Patricia trees as the basis for its dictionary search algorithm. In addition to LZMA, the SDK and 7-Zip also implements multiple
preprocessing filters intended to improve compression, ranging from simple
delta encoding (for images) and BCJ for executable code. It also provides some other compression algorithms used in 7z. Decompression-only code for LZMA generally compiles to around 5 KB, and the amount of RAM required during decompression is principally determined by the size of the
sliding window used during compression. Small code size and relatively low memory overhead, particularly with smaller dictionary lengths, and free source code make the LZMA decompression algorithm well-suited to
embedded applications. == Other implementations ==