2 changed files with 97 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||||||
|
LZ4 Library |
||||||
|
Copyright (c) 2011-2016, Yann Collet |
||||||
|
All rights reserved. |
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification, |
||||||
|
are permitted provided that the following conditions are met: |
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this |
||||||
|
list of conditions and the following disclaimer. |
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice, this |
||||||
|
list of conditions and the following disclaimer in the documentation and/or |
||||||
|
other materials provided with the distribution. |
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR |
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
||||||
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||||
@ -0,0 +1,73 @@ |
|||||||
|
LZ4 - Library Files |
||||||
|
================================ |
||||||
|
|
||||||
|
The directory contains many files, but depending on project's objectives, |
||||||
|
not all of them are necessary. |
||||||
|
|
||||||
|
#### Minimal LZ4 build |
||||||
|
|
||||||
|
The minimum required is **`lz4.c`** and **`lz4.h`**, |
||||||
|
which will provide the fast compression and decompression algorithm. |
||||||
|
|
||||||
|
|
||||||
|
#### The High Compression variant of LZ4 |
||||||
|
|
||||||
|
For more compression at the cost of compression speed, |
||||||
|
the High Compression variant **lz4hc** is available. |
||||||
|
It's necessary to add **`lz4hc.c`** and **`lz4hc.h`**. |
||||||
|
The variant still depends on regular `lz4` source files. |
||||||
|
In particular, the decompression is still provided by `lz4.c`. |
||||||
|
|
||||||
|
|
||||||
|
#### Compatibility issues |
||||||
|
|
||||||
|
In order to produce files or streams 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. |
||||||
|
In order to work properly, lz4frame needs lz4 and lz4hc, and also **xxhash**, |
||||||
|
which provides error detection. |
||||||
|
(_Advanced stuff_ : It's possible to hide xxhash symbols into a local namespace. |
||||||
|
This is what `liblz4` does, to avoid symbol duplication |
||||||
|
in case a user program would link to several libraries containing xxhash symbols.) |
||||||
|
|
||||||
|
|
||||||
|
#### Advanced API |
||||||
|
|
||||||
|
A more complex `lz4frame_static.h` is also provided. |
||||||
|
It contains definitions which are not guaranteed to remain stable within future versions. |
||||||
|
It must be used with static linking ***only***. |
||||||
|
|
||||||
|
|
||||||
|
#### Using MinGW+MSYS to create DLL |
||||||
|
|
||||||
|
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`. |
||||||
|
|
||||||
|
|
||||||
|
#### Miscellaneous |
||||||
|
|
||||||
|
Other files present in the directory are not source code. There are : |
||||||
|
|
||||||
|
- LICENSE : contains the BSD license text |
||||||
|
- Makefile : script to compile or install lz4 library (static or dynamic) |
||||||
|
- liblz4.pc.in : for pkg-config (make install) |
||||||
|
- README.md : this file |
||||||
|
|
||||||
|
[official interoperable frame format]: ../doc/lz4_Frame_format.md |
||||||
|
|
||||||
|
|
||||||
|
#### License |
||||||
|
|
||||||
|
All source material within __lib__ directory are BSD 2-Clause licensed. |
||||||
|
See [LICENSE](LICENSE) for details. |
||||||
|
The license is also repeated at the top of each source file. |
||||||
Loading…
Reference in new issue