Home | History | Annotate | only in /external/lz4/lib
Up to higher level directory
NameDateSize
Android.bp22-Oct-2020496
dll/22-Oct-2020
liblz4.pc.in22-Oct-2020385
LICENSE22-Oct-20201.3K
lz4.c22-Oct-202081K
lz4.h22-Oct-202031.1K
lz4frame.c22-Oct-202073.2K
lz4frame.h22-Oct-202024.7K
lz4frame_static.h22-Oct-20202K
lz4hc.c22-Oct-202058.5K
lz4hc.h22-Oct-202017.5K
Makefile22-Oct-20207.5K
MODULE_LICENSE_BSD22-Oct-20200
NOTICE22-Oct-20201.3K
README.md22-Oct-20202.7K
xxhash.c22-Oct-202029.2K
xxhash.h22-Oct-202012.3K

README.md

      1 LZ4 - Library Files
      2 ================================
      3 
      4 The `/lib` directory contains many files, but depending on project's objectives,
      5 not all of them are necessary.
      6 
      7 #### Minimal LZ4 build
      8 
      9 The minimum required is **`lz4.c`** and **`lz4.h`**,
     10 which provides the fast compression and decompression algorithm.
     11 They generate and decode data using [LZ4 block format].
     12 
     13 
     14 #### High Compression variant
     15 
     16 For more compression ratio at the cost of compression speed,
     17 the High Compression variant called **lz4hc** is available.
     18 Add files **`lz4hc.c`** and **`lz4hc.h`**.
     19 The variant still depends on regular `lib/lz4.*` source files.
     20 
     21 
     22 #### Frame variant, for interoperability
     23 
     24 In order to produce compressed data compatible with `lz4` command line utility,
     25 it's necessary to encode lz4-compressed blocks using the [official interoperable frame format].
     26 This format is generated and decoded automatically by the **lz4frame** library.
     27 Its public API is described in `lib/lz4frame.h`.
     28 In order to work properly, lz4frame needs all other modules present in `/lib`,
     29 including, lz4 and lz4hc, and also **xxhash**.
     30 So it's necessary to include all `*.c` and `*.h` files present in `/lib`.
     31 
     32 
     33 #### Advanced / Experimental API
     34 
     35 A complex API defined in `lz4frame_static.h` contains definitions
     36 which are not guaranteed to remain stable in future versions.
     37 As a consequence, it must be used with static linking ***only***.
     38 
     39 
     40 #### Windows : using MinGW+MSYS to create DLL
     41 
     42 DLL can be created using MinGW+MSYS with the `make liblz4` command.
     43 This command creates `dll\liblz4.dll` and the import library `dll\liblz4.lib`.
     44 The import library is only required with Visual C++.
     45 The header files `lz4.h`, `lz4hc.h`, `lz4frame.h` and the dynamic library
     46 `dll\liblz4.dll` are required to compile a project using gcc/MinGW.
     47 The dynamic library has to be added to linking options.
     48 It means that if a project that uses LZ4 consists of a single `test-dll.c`
     49 file it should be linked with `dll\liblz4.dll`. For example:
     50 ```
     51     gcc $(CFLAGS) -Iinclude/ test-dll.c -o test-dll dll\liblz4.dll
     52 ```
     53 The compiled executable will require LZ4 DLL which is available at `dll\liblz4.dll`.
     54 
     55 
     56 #### Miscellaneous
     57 
     58 Other files present in the directory are not source code. There are :
     59 
     60  - `LICENSE` : contains the BSD license text
     61  - `Makefile` : `make` script to compile and install lz4 library (static and dynamic)
     62  - `liblz4.pc.in` : for `pkg-config` (used in `make install`)
     63  - `README.md` : this file
     64 
     65 [official interoperable frame format]: ../doc/lz4_Frame_format.md
     66 [LZ4 block format]: ../doc/lz4_Block_format.md
     67 
     68 
     69 #### License
     70 
     71 All source material within __lib__ directory are BSD 2-Clause licensed.
     72 See [LICENSE](LICENSE) for details.
     73 The license is also reminded at the top of each source file.
     74