The lib directory contains several files, but you don't necessarily want them all. Here is a detailed list, to help you decide which one you need :
These files are required in all circumstances :
- error_public.h : error list as enum
- error_private.h : error management
- mem.h : low level memory access routines
- bitstream.h : generic read/write bitstream common to all entropy codecs
- entropy_common.c : common functions needed for both compression and decompression
This is the base codec required by other ones. It implements a tANS variant, similar to arithmetic in compression performance, but much faster. Compression and decompression can be compiled independently.
- fse.h : exposes interfaces
- fse_compress.c : implements compression codec
- fse_decompress.c : implements decompression codec
This codec is able to encode alphabets of size > 256, using 2 bytes per symbol. It requires the base FSE codec to compile properly. Compression and decompression are merged in the same file.
- fseU16.c implements the codec, while fseU16.h exposes its interfaces.
This is the fast huffman codec. It requires the base FSE codec to compress its headers. Compression and decompression can be compiled independently.
- huf.h : exposes interfaces.
- huf_compress.c : implements compression codec
- huf_decompress.c : implements decompression codec