.. | |||
dll | 1 year ago | ||
.gitignore | 1 year ago | ||
LICENSE | 1 year ago | ||
Makefile | 1 year ago | ||
README.md | 1 year ago | ||
liblz4.pc.in | 1 year ago | ||
lz4.c | 1 year ago | ||
lz4.h | 1 year ago | ||
lz4frame.c | 1 year ago | ||
lz4frame.h | 1 year ago | ||
lz4frame_static.h | 1 year ago | ||
lz4hc.c | 1 year ago | ||
lz4hc.h | 1 year ago | ||
xxhash.c | 1 year ago | ||
xxhash.h | 1 year ago |
The /lib
directory contains many files, but depending on project's objectives, not all of them are necessary.
The minimum required is lz4.c
and lz4.h
, which provides the fast compression and decompression algorithm. They generate and decode data using [LZ4 block format].
For more compression ratio at the cost of compression speed, the High Compression variant called lz4hc is available. Add files lz4hc.c
and lz4hc.h
. The variant still depends on regular lib/lz4.*
source files.
In order to produce compressed data compatible with lz4
command line utility, it's necessary to encode lz4-compressed blocks using the [official interoperable frame format]. This format is generated and decoded automatically by the lz4frame library. Its public API is described in lib/lz4frame.h
. In order to work properly, lz4frame needs all other modules present in /lib
, including, lz4 and lz4hc, and also xxhash. So it's necessary to include all *.c
and *.h
files present in /lib
.
A complex API defined in lz4frame_static.h
contains definitions which are not guaranteed to remain stable in future versions. As a consequence, it must be used with static linking only.
DLL can be created using MinGW+MSYS with the make liblz4
command. This command creates dll\liblz4.dll
and the import library dll\liblz4.lib
. The import library is only required with Visual C++. The header files lz4.h
, lz4hc.h
, lz4frame.h
and the dynamic library dll\liblz4.dll
are required to compile a project using gcc/MinGW. The dynamic library has to be added to linking options. It means that if a project that uses LZ4 consists of a single test-dll.c
file it should be linked with dll\liblz4.dll
. For example:
gcc $(CFLAGS) -Iinclude/ test-dll.c -o test-dll dll\liblz4.dll
The compiled executable will require LZ4 DLL which is available at dll\liblz4.dll
.
Other files present in the directory are not source code. There are :
LICENSE
: contains the BSD license textMakefile
: make
script to compile and install lz4 library (static and dynamic)liblz4.pc.in
: for pkg-config
(used in make install
)README.md
: this fileAll source material within lib directory are BSD 2-Clause licensed. See LICENSE for details. The license is also reminded at the top of each source file.