Home | History | Annotate | only in /external/lz4/lib
Up to higher level directory
NameDateSize
Android.bp21-Aug-2018349
dll/21-Aug-2018
liblz4.pc.in21-Aug-2018385
LICENSE21-Aug-20181.3K
lz4.c21-Aug-201856.5K
lz4.h21-Aug-201822.8K
lz4frame.c21-Aug-201858.5K
lz4frame.h21-Aug-201816.4K
lz4frame_static.h21-Aug-20183.3K
lz4hc.c21-Aug-201827.3K
lz4hc.h21-Aug-201811.5K
lz4opt.h21-Aug-201812.7K
Makefile21-Aug-20186.2K
MODULE_LICENSE_BSD21-Aug-20180
NOTICE21-Aug-20181.3K
README.md21-Aug-20182.7K
xxhash.c21-Aug-201829K
xxhash.h21-Aug-201812.3K

README.md

      1 LZ4 - Library Files
      2 ================================
      3 
      4 The 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 will provide the fast compression and decompression algorithm.
     11 
     12 
     13 #### The High Compression variant of LZ4
     14 
     15 For more compression at the cost of compression speed,
     16 the High Compression variant **lz4hc** is available.
     17 It's necessary to add **`lz4hc.c`** and **`lz4hc.h`**.
     18 The variant still depends on regular `lz4` source files.
     19 In particular, the decompression is still provided by `lz4.c`.
     20 
     21 
     22 #### Compatibility issues
     23 
     24 In order to produce files or streams 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 In order to work properly, lz4frame needs lz4 and lz4hc, and also **xxhash**,
     28 which provides error detection.
     29 (_Advanced stuff_ : It's possible to hide xxhash symbols into a local namespace.
     30 This is what `liblz4` does, to avoid symbol duplication
     31 in case a user program would link to several libraries containing xxhash symbols.)
     32 
     33 
     34 #### Advanced API 
     35 
     36 A more complex `lz4frame_static.h` is also provided.
     37 It contains definitions which are not guaranteed to remain stable within future versions.
     38 It must be used with static linking ***only***.
     39 
     40 
     41 #### Using MinGW+MSYS to create DLL
     42 
     43 DLL can be created using MinGW+MSYS with the `make liblz4` command.
     44 This command creates `dll\liblz4.dll` and the import library `dll\liblz4.lib`.
     45 The import library is only required with Visual C++.
     46 The header files `lz4.h`, `lz4hc.h`, `lz4frame.h` and the dynamic library
     47 `dll\liblz4.dll` are required to compile a project using gcc/MinGW.
     48 The dynamic library has to be added to linking options.
     49 It means that if a project that uses LZ4 consists of a single `test-dll.c`
     50 file it should be linked with `dll\liblz4.dll`. For example:
     51 ```
     52     gcc $(CFLAGS) -Iinclude/ test-dll.c -o test-dll dll\liblz4.dll
     53 ```
     54 The compiled executable will require LZ4 DLL which is available at `dll\liblz4.dll`. 
     55 
     56 
     57 #### Miscellaneous 
     58 
     59 Other files present in the directory are not source code. There are :
     60 
     61  - LICENSE : contains the BSD license text
     62  - Makefile : script to compile or install lz4 library (static or dynamic)
     63  - liblz4.pc.in : for pkg-config (make install)
     64  - README.md : this file
     65 
     66 [official interoperable frame format]: ../doc/lz4_Frame_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 repeated at the top of each source file.
     74