* upstream/dev: added doc\zstd_manual.html added contrib\gen_html zstd_compression_format.md moved to doc/ Fix small bug in ZSTD_execSequence() improved ZSTD_compressBlock_opt_extDict_generic protect ZSTD_decodeFrameHeader() from invalid usage, as suggested by @spaskob zstd_opt.h: small improvement in compression ratio improved dicitonary segment merge use implicit rules to compile zstd_decompress.c detect early impossible decompression scenario in legacy decoder v0.5 no repeat mode in legacy v0.5 fixed invalid invocation of dictionary in legacy decoder v0.5 fix edge case fix command line interpretation fixed minor corner case zstd.h: added the Introduction section fixed clang 3.5 warnings zstd.h: updated comments
Zstandard library files
The lib directory contains several directories. Depending on target use case, it's enough to include only files from relevant directories.
API
Zstandard's stable API is exposed within zstd.h,
at the root of lib directory.
Advanced API
Some additional API may be useful if you're looking into advanced features :
- common/error_public.h : transforms
size_tfunction results into anenum, for precise error handling. - ZSTD_STATIC_LINKING_ONLY : if you define this macro before including
zstd.h, it will give access to advanced and experimental API. These APIs shall never be used with dynamic library ! They are not "stable", their definition may change in the future. Only static linking is allowed.
Modular build
Directory common/ is required in all circumstances.
You can select to support compression only, by just adding files from the compress/ directory,
In a similar way, you can build a decompressor-only library with the decompress/ directory.
Other optional functionalities provided are :
-
dictBuilder/: source files to create dictionaries. The API can be consulted indictBuilder/zdict.h. This module also depends oncommon/andcompress/. -
legacy/: source code to decompress previous versions of zstd, starting fromv0.1. This module also depends oncommon/anddecompress/. Library compilation must include directiveZSTD_LEGACY_SUPPORT = 1. The main API can be consulted inlegacy/zstd_legacy.h. Advanced API from each version can be found in their relevant header file. For example, advanced API for versionv0.4is inlegacy/zstd_v04.h.
Obsolete streaming API
Streaming is now provided within zstd.h.
Older streaming API is still provided within common/zbuff.h.
It is considered obsolete, and will be removed in a future version.
Consider migrating towards newer streaming API.
Miscellaneous
The other files are not source code. There are :
- LICENSE : contains the BSD license text
- Makefile : script to compile or install zstd library (static and dynamic)
- libzstd.pc.in : for pkg-config (
make install) - README.md : this file