Home | History | Annotate | only in /src/external/bsd/zstd/dist/build/single_file_libs
Up to higher level directory
NameDateSize
build_decoder_test.sh27-Oct-20242K
build_library_test.sh01-May-20262.3K
combine.py27-Oct-20249.9K
combine.sh27-Oct-20247.5K
create_single_file_decoder.sh27-Oct-2024565
create_single_file_library.sh27-Oct-2024541
examples/25-Feb-2026
README.md27-Oct-20242.1K
zstd-in.c01-May-20262.8K
zstddeclib-in.c27-Oct-20242K

README.md

      1 # Single File Zstandard Libraries
      2 
      3 The script `combine.sh` creates an _amalgamated_ source file that can be used with or without `zstd.h`. This isn't a _header-only_ file but it does offer a similar level of simplicity when integrating into a project.
      4 
      5 All it now takes to support Zstd in your own projects is the addition of a single file, two if using the header, with no configuration or further build steps.
      6 
      7 Decompressor
      8 ------------
      9 
     10 This is the most common use case. The decompression library is small, adding, for example, 26kB to an Emscripten compiled WebAssembly project. Native implementations add a little more, 40-70kB depending on the compiler and platform.
     11 
     12 Create `zstddeclib.c` from the Zstd source using:
     13 ```
     14 cd zstd/build/single_file_libs
     15 python3 combine.py -r ../../lib -x legacy/zstd_legacy.h -o zstddeclib.c zstddeclib-in.c
     16 ```
     17 Then add the resulting file to your project (see the [example files](examples)).
     18 
     19 `create_single_file_decoder.sh` will run the above script, creating the file `zstddeclib.c` (`build_decoder_test.sh` will also create `zstddeclib.c`, then compile and test the result).
     20 
     21 Full Library
     22 ------------
     23 
     24 The same tool can amalgamate the entire Zstd library for ease of adding both compression and decompression to a project. The [roundtrip example](examples/roundtrip.c) uses the original `zstd.h` with the remaining source files combined into `zstd.c` (currently just over 1.2MB) created from `zstd-in.c`. As with the standalone decoder the most useful compile flags have already been rolled-in and the resulting file can be added to a project as-is.
     25 
     26 Create `zstd.c` from the Zstd source using:
     27 ```
     28 cd zstd/build/single_file_libs
     29 python3 combine.py -r ../../lib -x legacy/zstd_legacy.h -k zstd.h -o zstd.c zstd-in.c
     30 ```
     31 It's possible to create a compressor-only library but since the decompressor is so small in comparison this doesn't bring much of a gain (but for the curious, simply remove the files in the _decompress_ section at the end of `zstd-in.c`).
     32 
     33 `create_single_file_library.sh` will run the script to create `zstd.c` (`build_library_test.sh` will also create `zstd.c`, then compile and test the result).
     34