zstd-native-ruby 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CLAUDE.md +101 -0
- data/LICENSE +19 -0
- data/README.md +47 -0
- data/ext/zstd_ruby/extconf.rb +35 -0
- data/ext/zstd_ruby/zstd_ruby.c +221 -0
- data/lib/zstd_ruby.rb +68 -0
- data/vendor/zstd/CHANGELOG +863 -0
- data/vendor/zstd/CMakeLists.txt +11 -0
- data/vendor/zstd/CODE_OF_CONDUCT.md +5 -0
- data/vendor/zstd/CONTRIBUTING.md +494 -0
- data/vendor/zstd/COPYING +339 -0
- data/vendor/zstd/LICENSE +30 -0
- data/vendor/zstd/Makefile +470 -0
- data/vendor/zstd/Package.swift +36 -0
- data/vendor/zstd/README.md +244 -0
- data/vendor/zstd/SECURITY.md +15 -0
- data/vendor/zstd/TESTING.md +43 -0
- data/vendor/zstd/build/LICENSE +0 -0
- data/vendor/zstd/build/README.md +56 -0
- data/vendor/zstd/build/VS2008/fullbench/fullbench.vcproj +549 -0
- data/vendor/zstd/build/VS2008/fuzzer/fuzzer.vcproj +585 -0
- data/vendor/zstd/build/VS2008/zstd/zstd.vcproj +677 -0
- data/vendor/zstd/build/VS2008/zstd.sln +56 -0
- data/vendor/zstd/build/VS2008/zstdlib/zstdlib.vcproj +635 -0
- data/vendor/zstd/build/VS2010/CompileAsCpp.props +8 -0
- data/vendor/zstd/build/VS2010/datagen/datagen.vcxproj +170 -0
- data/vendor/zstd/build/VS2010/fullbench/fullbench.vcxproj +220 -0
- data/vendor/zstd/build/VS2010/fuzzer/fuzzer.vcxproj +224 -0
- data/vendor/zstd/build/VS2010/libzstd/libzstd.vcxproj +243 -0
- data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.rc +51 -0
- data/vendor/zstd/build/VS2010/libzstd-dll/libzstd-dll.vcxproj +250 -0
- data/vendor/zstd/build/VS2010/zstd/zstd.rc +51 -0
- data/vendor/zstd/build/VS2010/zstd/zstd.vcxproj +266 -0
- data/vendor/zstd/build/VS2010/zstd.sln +84 -0
- data/vendor/zstd/build/VS_scripts/README.md +64 -0
- data/vendor/zstd/build/VS_scripts/build.VS2010.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2012.cmd +6 -0
- data/vendor/zstd/build/VS_scripts/build.VS2013.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2015.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017Community.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017Enterprise.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VS2017Professional.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.VSPreview.cmd +7 -0
- data/vendor/zstd/build/VS_scripts/build.generic.cmd +67 -0
- data/vendor/zstd/build/cmake/CMakeLists.txt +81 -0
- data/vendor/zstd/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +138 -0
- data/vendor/zstd/build/cmake/CMakeModules/FindLibLZ4.cmake +49 -0
- data/vendor/zstd/build/cmake/CMakeModules/GetZstdLibraryVersion.cmake +10 -0
- data/vendor/zstd/build/cmake/CMakeModules/JoinPaths.cmake +23 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdBuild.cmake +42 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdDependencies.cmake +30 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdOptions.cmake +68 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdPackage.cmake +42 -0
- data/vendor/zstd/build/cmake/CMakeModules/ZstdVersion.cmake +31 -0
- data/vendor/zstd/build/cmake/README.md +155 -0
- data/vendor/zstd/build/cmake/contrib/CMakeLists.txt +13 -0
- data/vendor/zstd/build/cmake/contrib/gen_html/CMakeLists.txt +30 -0
- data/vendor/zstd/build/cmake/contrib/pzstd/CMakeLists.txt +39 -0
- data/vendor/zstd/build/cmake/lib/CMakeLists.txt +298 -0
- data/vendor/zstd/build/cmake/lib/cmake_uninstall.cmake.in +22 -0
- data/vendor/zstd/build/cmake/programs/CMakeLists.txt +144 -0
- data/vendor/zstd/build/cmake/tests/CMakeLists.txt +118 -0
- data/vendor/zstd/build/cmake/zstdConfig.cmake.in +10 -0
- data/vendor/zstd/build/meson/GetZstdLibraryVersion.py +39 -0
- data/vendor/zstd/build/meson/InstallSymlink.py +55 -0
- data/vendor/zstd/build/meson/README.md +38 -0
- data/vendor/zstd/build/meson/contrib/gen_html/meson.build +30 -0
- data/vendor/zstd/build/meson/contrib/meson.build +12 -0
- data/vendor/zstd/build/meson/contrib/pzstd/meson.build +25 -0
- data/vendor/zstd/build/meson/lib/meson.build +175 -0
- data/vendor/zstd/build/meson/meson.build +155 -0
- data/vendor/zstd/build/meson/meson_options.txt +36 -0
- data/vendor/zstd/build/meson/programs/meson.build +124 -0
- data/vendor/zstd/build/meson/tests/meson.build +217 -0
- data/vendor/zstd/build/meson/tests/valgrindTest.py +90 -0
- data/vendor/zstd/build/single_file_libs/README.md +33 -0
- data/vendor/zstd/build/single_file_libs/build_decoder_test.sh +91 -0
- data/vendor/zstd/build/single_file_libs/build_library_test.sh +98 -0
- data/vendor/zstd/build/single_file_libs/combine.py +234 -0
- data/vendor/zstd/build/single_file_libs/combine.sh +249 -0
- data/vendor/zstd/build/single_file_libs/create_single_file_decoder.sh +19 -0
- data/vendor/zstd/build/single_file_libs/create_single_file_library.sh +19 -0
- data/vendor/zstd/build/single_file_libs/examples/README.md +11 -0
- data/vendor/zstd/build/single_file_libs/examples/emscripten.c +340 -0
- data/vendor/zstd/build/single_file_libs/examples/roundtrip.c +83 -0
- data/vendor/zstd/build/single_file_libs/examples/shell.html +31 -0
- data/vendor/zstd/build/single_file_libs/examples/simple.c +75 -0
- data/vendor/zstd/build/single_file_libs/examples/testcard-dxt1.inl +2731 -0
- data/vendor/zstd/build/single_file_libs/examples/testcard-zstd.inl +261 -0
- data/vendor/zstd/build/single_file_libs/examples/testcard.png +0 -0
- data/vendor/zstd/build/single_file_libs/zstd-in.c +91 -0
- data/vendor/zstd/build/single_file_libs/zstddeclib-in.c +62 -0
- data/vendor/zstd/contrib/VS2005/README.md +3 -0
- data/vendor/zstd/contrib/VS2005/fullbench/fullbench.vcproj +440 -0
- data/vendor/zstd/contrib/VS2005/fuzzer/fuzzer.vcproj +488 -0
- data/vendor/zstd/contrib/VS2005/zstd/zstd.vcproj +552 -0
- data/vendor/zstd/contrib/VS2005/zstd.sln +55 -0
- data/vendor/zstd/contrib/VS2005/zstdlib/zstdlib.vcproj +546 -0
- data/vendor/zstd/contrib/cleanTabs +2 -0
- data/vendor/zstd/contrib/diagnose_corruption/Makefile +35 -0
- data/vendor/zstd/contrib/diagnose_corruption/check_flipped_bits.c +400 -0
- data/vendor/zstd/contrib/docker/Dockerfile +20 -0
- data/vendor/zstd/contrib/docker/README.md +20 -0
- data/vendor/zstd/contrib/externalSequenceProducer/Makefile +40 -0
- data/vendor/zstd/contrib/externalSequenceProducer/README.md +14 -0
- data/vendor/zstd/contrib/externalSequenceProducer/main.c +108 -0
- data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.c +80 -0
- data/vendor/zstd/contrib/externalSequenceProducer/sequence_producer.h +26 -0
- data/vendor/zstd/contrib/freestanding_lib/freestanding.py +774 -0
- data/vendor/zstd/contrib/gen_html/Makefile +51 -0
- data/vendor/zstd/contrib/gen_html/README.md +31 -0
- data/vendor/zstd/contrib/gen_html/gen-zstd-manual.sh +9 -0
- data/vendor/zstd/contrib/gen_html/gen_html.cpp +225 -0
- data/vendor/zstd/contrib/largeNbDicts/Makefile +58 -0
- data/vendor/zstd/contrib/largeNbDicts/README.md +33 -0
- data/vendor/zstd/contrib/largeNbDicts/largeNbDicts.c +1087 -0
- data/vendor/zstd/contrib/linux-kernel/Makefile +108 -0
- data/vendor/zstd/contrib/linux-kernel/README.md +14 -0
- data/vendor/zstd/contrib/linux-kernel/btrfs-benchmark.sh +104 -0
- data/vendor/zstd/contrib/linux-kernel/btrfs-extract-benchmark.sh +99 -0
- data/vendor/zstd/contrib/linux-kernel/decompress_sources.h +34 -0
- data/vendor/zstd/contrib/linux-kernel/linux.mk +44 -0
- data/vendor/zstd/contrib/linux-kernel/linux_zstd.h +691 -0
- data/vendor/zstd/contrib/linux-kernel/mem.h +262 -0
- data/vendor/zstd/contrib/linux-kernel/squashfs-benchmark.sh +39 -0
- data/vendor/zstd/contrib/linux-kernel/test/Makefile +49 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/compiler.h +23 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/errno.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/kernel.h +19 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/limits.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/math64.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/module.h +20 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/printk.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/stddef.h +15 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/swab.h +16 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/types.h +16 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/unaligned.h +187 -0
- data/vendor/zstd/contrib/linux-kernel/test/include/linux/xxhash.h +745 -0
- data/vendor/zstd/contrib/linux-kernel/test/macro-test.sh +44 -0
- data/vendor/zstd/contrib/linux-kernel/test/static_test.c +52 -0
- data/vendor/zstd/contrib/linux-kernel/test/test.c +229 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_common_module.c +29 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_compress_module.c +286 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_decompress_module.c +141 -0
- data/vendor/zstd/contrib/linux-kernel/zstd_deps.h +121 -0
- data/vendor/zstd/contrib/match_finders/README.md +42 -0
- data/vendor/zstd/contrib/match_finders/zstd_edist.c +558 -0
- data/vendor/zstd/contrib/match_finders/zstd_edist.h +70 -0
- data/vendor/zstd/contrib/premake/premake4.lua +6 -0
- data/vendor/zstd/contrib/premake/zstd.lua +81 -0
- data/vendor/zstd/contrib/pzstd/BUCK +72 -0
- data/vendor/zstd/contrib/pzstd/ErrorHolder.h +54 -0
- data/vendor/zstd/contrib/pzstd/Logging.h +73 -0
- data/vendor/zstd/contrib/pzstd/Makefile +265 -0
- data/vendor/zstd/contrib/pzstd/Options.cpp +424 -0
- data/vendor/zstd/contrib/pzstd/Options.h +71 -0
- data/vendor/zstd/contrib/pzstd/Pzstd.cpp +626 -0
- data/vendor/zstd/contrib/pzstd/Pzstd.h +153 -0
- data/vendor/zstd/contrib/pzstd/README.md +56 -0
- data/vendor/zstd/contrib/pzstd/SkippableFrame.cpp +30 -0
- data/vendor/zstd/contrib/pzstd/SkippableFrame.h +64 -0
- data/vendor/zstd/contrib/pzstd/images/Cspeed.png +0 -0
- data/vendor/zstd/contrib/pzstd/images/Dspeed.png +0 -0
- data/vendor/zstd/contrib/pzstd/main.cpp +27 -0
- data/vendor/zstd/contrib/pzstd/test/BUCK +37 -0
- data/vendor/zstd/contrib/pzstd/test/OptionsTest.cpp +536 -0
- data/vendor/zstd/contrib/pzstd/test/PzstdTest.cpp +147 -0
- data/vendor/zstd/contrib/pzstd/test/RoundTrip.h +86 -0
- data/vendor/zstd/contrib/pzstd/test/RoundTripTest.cpp +84 -0
- data/vendor/zstd/contrib/pzstd/utils/BUCK +75 -0
- data/vendor/zstd/contrib/pzstd/utils/Buffer.h +99 -0
- data/vendor/zstd/contrib/pzstd/utils/FileSystem.h +96 -0
- data/vendor/zstd/contrib/pzstd/utils/Likely.h +28 -0
- data/vendor/zstd/contrib/pzstd/utils/Portability.h +16 -0
- data/vendor/zstd/contrib/pzstd/utils/Range.h +133 -0
- data/vendor/zstd/contrib/pzstd/utils/ResourcePool.h +96 -0
- data/vendor/zstd/contrib/pzstd/utils/ScopeGuard.h +50 -0
- data/vendor/zstd/contrib/pzstd/utils/ThreadPool.h +58 -0
- data/vendor/zstd/contrib/pzstd/utils/WorkQueue.h +182 -0
- data/vendor/zstd/contrib/pzstd/utils/test/BUCK +35 -0
- data/vendor/zstd/contrib/pzstd/utils/test/BufferTest.cpp +89 -0
- data/vendor/zstd/contrib/pzstd/utils/test/RangeTest.cpp +82 -0
- data/vendor/zstd/contrib/pzstd/utils/test/ResourcePoolTest.cpp +72 -0
- data/vendor/zstd/contrib/pzstd/utils/test/ScopeGuardTest.cpp +28 -0
- data/vendor/zstd/contrib/pzstd/utils/test/ThreadPoolTest.cpp +71 -0
- data/vendor/zstd/contrib/pzstd/utils/test/WorkQueueTest.cpp +282 -0
- data/vendor/zstd/contrib/recovery/Makefile +35 -0
- data/vendor/zstd/contrib/recovery/recover_directory.c +152 -0
- data/vendor/zstd/contrib/seekable_format/README.md +42 -0
- data/vendor/zstd/contrib/seekable_format/examples/Makefile +55 -0
- data/vendor/zstd/contrib/seekable_format/examples/parallel_compression.c +254 -0
- data/vendor/zstd/contrib/seekable_format/examples/parallel_processing.c +191 -0
- data/vendor/zstd/contrib/seekable_format/examples/seekable_compression.c +136 -0
- data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression.c +141 -0
- data/vendor/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c +147 -0
- data/vendor/zstd/contrib/seekable_format/tests/Makefile +58 -0
- data/vendor/zstd/contrib/seekable_format/tests/seekable_tests.c +375 -0
- data/vendor/zstd/contrib/seekable_format/zstd_seekable.h +226 -0
- data/vendor/zstd/contrib/seekable_format/zstd_seekable_compression_format.md +116 -0
- data/vendor/zstd/contrib/seekable_format/zstdseek_compress.c +365 -0
- data/vendor/zstd/contrib/seekable_format/zstdseek_decompress.c +600 -0
- data/vendor/zstd/contrib/seqBench/Makefile +58 -0
- data/vendor/zstd/contrib/seqBench/seqBench.c +53 -0
- data/vendor/zstd/contrib/snap/snapcraft.yaml +28 -0
- data/vendor/zstd/doc/README.md +26 -0
- data/vendor/zstd/doc/decompressor_errata.md +148 -0
- data/vendor/zstd/doc/decompressor_permissive.md +80 -0
- data/vendor/zstd/doc/educational_decoder/Makefile +62 -0
- data/vendor/zstd/doc/educational_decoder/README.md +36 -0
- data/vendor/zstd/doc/educational_decoder/harness.c +119 -0
- data/vendor/zstd/doc/educational_decoder/zstd_decompress.c +2323 -0
- data/vendor/zstd/doc/educational_decoder/zstd_decompress.h +61 -0
- data/vendor/zstd/doc/images/CSpeed2.png +0 -0
- data/vendor/zstd/doc/images/DCspeed5.png +0 -0
- data/vendor/zstd/doc/images/DSpeed3.png +0 -0
- data/vendor/zstd/doc/images/cdict_v136.png +0 -0
- data/vendor/zstd/doc/images/dict-cr.png +0 -0
- data/vendor/zstd/doc/images/dict-cs.png +0 -0
- data/vendor/zstd/doc/images/dict-ds.png +0 -0
- data/vendor/zstd/doc/images/zstd_cdict_v1_3_5.png +0 -0
- data/vendor/zstd/doc/images/zstd_logo86.png +0 -0
- data/vendor/zstd/doc/zstd_compression_format.md +1772 -0
- data/vendor/zstd/doc/zstd_manual.html +2244 -0
- data/vendor/zstd/examples/Makefile +93 -0
- data/vendor/zstd/examples/README.md +46 -0
- data/vendor/zstd/examples/common.h +246 -0
- data/vendor/zstd/examples/dictionary_compression.c +107 -0
- data/vendor/zstd/examples/dictionary_decompression.c +99 -0
- data/vendor/zstd/examples/multiple_simple_compression.c +116 -0
- data/vendor/zstd/examples/multiple_streaming_compression.c +133 -0
- data/vendor/zstd/examples/simple_compression.c +68 -0
- data/vendor/zstd/examples/simple_decompression.c +65 -0
- data/vendor/zstd/examples/streaming_compression.c +146 -0
- data/vendor/zstd/examples/streaming_compression_thread_pool.c +180 -0
- data/vendor/zstd/examples/streaming_decompression.c +100 -0
- data/vendor/zstd/examples/streaming_memory_usage.c +137 -0
- data/vendor/zstd/lib/BUCK +232 -0
- data/vendor/zstd/lib/Makefile +389 -0
- data/vendor/zstd/lib/README.md +267 -0
- data/vendor/zstd/lib/common/allocations.h +55 -0
- data/vendor/zstd/lib/common/bits.h +205 -0
- data/vendor/zstd/lib/common/bitstream.h +454 -0
- data/vendor/zstd/lib/common/compiler.h +482 -0
- data/vendor/zstd/lib/common/cpu.h +249 -0
- data/vendor/zstd/lib/common/debug.c +30 -0
- data/vendor/zstd/lib/common/debug.h +107 -0
- data/vendor/zstd/lib/common/debug.o +0 -0
- data/vendor/zstd/lib/common/entropy_common.c +340 -0
- data/vendor/zstd/lib/common/entropy_common.o +0 -0
- data/vendor/zstd/lib/common/error_private.c +64 -0
- data/vendor/zstd/lib/common/error_private.h +158 -0
- data/vendor/zstd/lib/common/error_private.o +0 -0
- data/vendor/zstd/lib/common/fse.h +625 -0
- data/vendor/zstd/lib/common/fse_decompress.c +315 -0
- data/vendor/zstd/lib/common/fse_decompress.o +0 -0
- data/vendor/zstd/lib/common/huf.h +277 -0
- data/vendor/zstd/lib/common/mem.h +422 -0
- data/vendor/zstd/lib/common/pool.c +371 -0
- data/vendor/zstd/lib/common/pool.h +81 -0
- data/vendor/zstd/lib/common/pool.o +0 -0
- data/vendor/zstd/lib/common/portability_macros.h +190 -0
- data/vendor/zstd/lib/common/threading.c +196 -0
- data/vendor/zstd/lib/common/threading.h +142 -0
- data/vendor/zstd/lib/common/threading.o +0 -0
- data/vendor/zstd/lib/common/xxhash.c +18 -0
- data/vendor/zstd/lib/common/xxhash.h +7094 -0
- data/vendor/zstd/lib/common/xxhash.o +0 -0
- data/vendor/zstd/lib/common/zstd_common.c +57 -0
- data/vendor/zstd/lib/common/zstd_common.o +0 -0
- data/vendor/zstd/lib/common/zstd_deps.h +123 -0
- data/vendor/zstd/lib/common/zstd_internal.h +326 -0
- data/vendor/zstd/lib/common/zstd_trace.h +156 -0
- data/vendor/zstd/lib/compress/clevels.h +134 -0
- data/vendor/zstd/lib/compress/fse_compress.c +625 -0
- data/vendor/zstd/lib/compress/fse_compress.o +0 -0
- data/vendor/zstd/lib/compress/hist.c +446 -0
- data/vendor/zstd/lib/compress/hist.h +86 -0
- data/vendor/zstd/lib/compress/hist.o +0 -0
- data/vendor/zstd/lib/compress/huf_compress.c +1465 -0
- data/vendor/zstd/lib/compress/huf_compress.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress.c +8362 -0
- data/vendor/zstd/lib/compress/zstd_compress.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress_internal.h +1636 -0
- data/vendor/zstd/lib/compress/zstd_compress_literals.c +235 -0
- data/vendor/zstd/lib/compress/zstd_compress_literals.h +39 -0
- data/vendor/zstd/lib/compress/zstd_compress_literals.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress_sequences.c +442 -0
- data/vendor/zstd/lib/compress/zstd_compress_sequences.h +55 -0
- data/vendor/zstd/lib/compress/zstd_compress_sequences.o +0 -0
- data/vendor/zstd/lib/compress/zstd_compress_superblock.c +688 -0
- data/vendor/zstd/lib/compress/zstd_compress_superblock.h +32 -0
- data/vendor/zstd/lib/compress/zstd_compress_superblock.o +0 -0
- data/vendor/zstd/lib/compress/zstd_cwksp.h +765 -0
- data/vendor/zstd/lib/compress/zstd_double_fast.c +778 -0
- data/vendor/zstd/lib/compress/zstd_double_fast.h +42 -0
- data/vendor/zstd/lib/compress/zstd_double_fast.o +0 -0
- data/vendor/zstd/lib/compress/zstd_fast.c +985 -0
- data/vendor/zstd/lib/compress/zstd_fast.h +30 -0
- data/vendor/zstd/lib/compress/zstd_fast.o +0 -0
- data/vendor/zstd/lib/compress/zstd_lazy.c +2243 -0
- data/vendor/zstd/lib/compress/zstd_lazy.h +193 -0
- data/vendor/zstd/lib/compress/zstd_lazy.o +0 -0
- data/vendor/zstd/lib/compress/zstd_ldm.c +745 -0
- data/vendor/zstd/lib/compress/zstd_ldm.h +109 -0
- data/vendor/zstd/lib/compress/zstd_ldm.o +0 -0
- data/vendor/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
- data/vendor/zstd/lib/compress/zstd_opt.c +1572 -0
- data/vendor/zstd/lib/compress/zstd_opt.h +72 -0
- data/vendor/zstd/lib/compress/zstd_opt.o +0 -0
- data/vendor/zstd/lib/compress/zstd_preSplit.c +238 -0
- data/vendor/zstd/lib/compress/zstd_preSplit.h +33 -0
- data/vendor/zstd/lib/compress/zstd_preSplit.o +0 -0
- data/vendor/zstd/lib/compress/zstdmt_compress.c +1924 -0
- data/vendor/zstd/lib/compress/zstdmt_compress.h +102 -0
- data/vendor/zstd/lib/compress/zstdmt_compress.o +0 -0
- data/vendor/zstd/lib/decompress/huf_decompress.c +1953 -0
- data/vendor/zstd/lib/decompress/huf_decompress.o +0 -0
- data/vendor/zstd/lib/decompress/huf_decompress_amd64.S +766 -0
- data/vendor/zstd/lib/decompress/zstd_ddict.c +244 -0
- data/vendor/zstd/lib/decompress/zstd_ddict.h +44 -0
- data/vendor/zstd/lib/decompress/zstd_ddict.o +0 -0
- data/vendor/zstd/lib/decompress/zstd_decompress.c +2410 -0
- data/vendor/zstd/lib/decompress/zstd_decompress.o +0 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_block.c +2311 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_block.h +73 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_block.o +0 -0
- data/vendor/zstd/lib/decompress/zstd_decompress_internal.h +240 -0
- data/vendor/zstd/lib/deprecated/zbuff.h +214 -0
- data/vendor/zstd/lib/deprecated/zbuff_common.c +26 -0
- data/vendor/zstd/lib/deprecated/zbuff_compress.c +167 -0
- data/vendor/zstd/lib/deprecated/zbuff_decompress.c +77 -0
- data/vendor/zstd/lib/dictBuilder/cover.c +1333 -0
- data/vendor/zstd/lib/dictBuilder/cover.h +152 -0
- data/vendor/zstd/lib/dictBuilder/divsufsort.c +1913 -0
- data/vendor/zstd/lib/dictBuilder/divsufsort.h +57 -0
- data/vendor/zstd/lib/dictBuilder/fastcover.c +765 -0
- data/vendor/zstd/lib/dictBuilder/zdict.c +1137 -0
- data/vendor/zstd/lib/dll/example/Makefile +48 -0
- data/vendor/zstd/lib/dll/example/README.md +63 -0
- data/vendor/zstd/lib/dll/example/build_package.bat +55 -0
- data/vendor/zstd/lib/dll/example/fullbench-dll.sln +25 -0
- data/vendor/zstd/lib/dll/example/fullbench-dll.vcxproj +181 -0
- data/vendor/zstd/lib/install_oses.mk +17 -0
- data/vendor/zstd/lib/legacy/zstd_legacy.h +452 -0
- data/vendor/zstd/lib/legacy/zstd_v01.c +2128 -0
- data/vendor/zstd/lib/legacy/zstd_v01.h +94 -0
- data/vendor/zstd/lib/legacy/zstd_v02.c +3465 -0
- data/vendor/zstd/lib/legacy/zstd_v02.h +93 -0
- data/vendor/zstd/lib/legacy/zstd_v03.c +3105 -0
- data/vendor/zstd/lib/legacy/zstd_v03.h +93 -0
- data/vendor/zstd/lib/legacy/zstd_v04.c +3598 -0
- data/vendor/zstd/lib/legacy/zstd_v04.h +142 -0
- data/vendor/zstd/lib/legacy/zstd_v05.c +4005 -0
- data/vendor/zstd/lib/legacy/zstd_v05.h +162 -0
- data/vendor/zstd/lib/legacy/zstd_v06.c +4110 -0
- data/vendor/zstd/lib/legacy/zstd_v06.h +172 -0
- data/vendor/zstd/lib/legacy/zstd_v07.c +4490 -0
- data/vendor/zstd/lib/legacy/zstd_v07.h +187 -0
- data/vendor/zstd/lib/libzstd.mk +238 -0
- data/vendor/zstd/lib/libzstd.pc.in +17 -0
- data/vendor/zstd/lib/module.modulemap +35 -0
- data/vendor/zstd/lib/zdict.h +481 -0
- data/vendor/zstd/lib/zstd.h +3209 -0
- data/vendor/zstd/lib/zstd_errors.h +107 -0
- data/vendor/zstd/programs/BUCK +44 -0
- data/vendor/zstd/programs/Makefile +445 -0
- data/vendor/zstd/programs/README.md +344 -0
- data/vendor/zstd/programs/benchfn.c +256 -0
- data/vendor/zstd/programs/benchfn.h +173 -0
- data/vendor/zstd/programs/benchzstd.c +1270 -0
- data/vendor/zstd/programs/benchzstd.h +191 -0
- data/vendor/zstd/programs/datagen.c +186 -0
- data/vendor/zstd/programs/datagen.h +38 -0
- data/vendor/zstd/programs/dibio.c +447 -0
- data/vendor/zstd/programs/dibio.h +39 -0
- data/vendor/zstd/programs/fileio.c +3717 -0
- data/vendor/zstd/programs/fileio.h +171 -0
- data/vendor/zstd/programs/fileio_asyncio.c +663 -0
- data/vendor/zstd/programs/fileio_asyncio.h +195 -0
- data/vendor/zstd/programs/fileio_common.h +121 -0
- data/vendor/zstd/programs/fileio_types.h +86 -0
- data/vendor/zstd/programs/lorem.c +285 -0
- data/vendor/zstd/programs/lorem.h +32 -0
- data/vendor/zstd/programs/platform.h +217 -0
- data/vendor/zstd/programs/timefn.c +170 -0
- data/vendor/zstd/programs/timefn.h +59 -0
- data/vendor/zstd/programs/util.c +1731 -0
- data/vendor/zstd/programs/util.h +364 -0
- data/vendor/zstd/programs/windres/verrsrc.h +17 -0
- data/vendor/zstd/programs/windres/zstd.rc +51 -0
- data/vendor/zstd/programs/windres/zstd32.res +0 -0
- data/vendor/zstd/programs/windres/zstd64.res +0 -0
- data/vendor/zstd/programs/zstd.1 +580 -0
- data/vendor/zstd/programs/zstd.1.md +714 -0
- data/vendor/zstd/programs/zstdcli.c +1675 -0
- data/vendor/zstd/programs/zstdcli_trace.c +173 -0
- data/vendor/zstd/programs/zstdcli_trace.h +24 -0
- data/vendor/zstd/programs/zstdgrep +134 -0
- data/vendor/zstd/programs/zstdgrep.1 +26 -0
- data/vendor/zstd/programs/zstdgrep.1.md +30 -0
- data/vendor/zstd/programs/zstdless +8 -0
- data/vendor/zstd/programs/zstdless.1 +14 -0
- data/vendor/zstd/programs/zstdless.1.md +16 -0
- data/vendor/zstd/tests/DEPRECATED-test-zstd-speed.py +378 -0
- data/vendor/zstd/tests/Makefile +485 -0
- data/vendor/zstd/tests/README.md +184 -0
- data/vendor/zstd/tests/automated_benchmarking.py +326 -0
- data/vendor/zstd/tests/checkTag.c +65 -0
- data/vendor/zstd/tests/check_size.py +31 -0
- data/vendor/zstd/tests/cli-tests/README.md +258 -0
- data/vendor/zstd/tests/cli-tests/basic/args.sh +10 -0
- data/vendor/zstd/tests/cli-tests/basic/args.sh.exit +1 -0
- data/vendor/zstd/tests/cli-tests/basic/args.sh.stderr.glob +28 -0
- data/vendor/zstd/tests/cli-tests/basic/help.sh +10 -0
- data/vendor/zstd/tests/cli-tests/basic/help.sh.stdout.glob +34 -0
- data/vendor/zstd/tests/cli-tests/basic/memlimit.sh +40 -0
- data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stderr.exact +13 -0
- data/vendor/zstd/tests/cli-tests/basic/memlimit.sh.stdout.exact +13 -0
- data/vendor/zstd/tests/cli-tests/basic/output_dir.sh +7 -0
- data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stderr.exact +2 -0
- data/vendor/zstd/tests/cli-tests/basic/output_dir.sh.stdout.exact +2 -0
- data/vendor/zstd/tests/cli-tests/basic/version.sh +6 -0
- data/vendor/zstd/tests/cli-tests/basic/version.sh.stdout.glob +2 -0
- data/vendor/zstd/tests/cli-tests/bin/cmp_size +44 -0
- data/vendor/zstd/tests/cli-tests/bin/datagen +3 -0
- data/vendor/zstd/tests/cli-tests/bin/die +4 -0
- data/vendor/zstd/tests/cli-tests/bin/println +2 -0
- data/vendor/zstd/tests/cli-tests/bin/unzstd +1 -0
- data/vendor/zstd/tests/cli-tests/bin/zstd +9 -0
- data/vendor/zstd/tests/cli-tests/bin/zstdcat +1 -0
- data/vendor/zstd/tests/cli-tests/bin/zstdgrep +2 -0
- data/vendor/zstd/tests/cli-tests/bin/zstdless +2 -0
- data/vendor/zstd/tests/cli-tests/cltools/setup +6 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh +8 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.exit +1 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stderr.exact +1 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdgrep.sh.stdout.glob +4 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh +10 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stderr.exact +2 -0
- data/vendor/zstd/tests/cli-tests/cltools/zstdless.sh.stdout.glob +5 -0
- data/vendor/zstd/tests/cli-tests/common/format.sh +19 -0
- data/vendor/zstd/tests/cli-tests/common/mtime.sh +13 -0
- data/vendor/zstd/tests/cli-tests/common/permissions.sh +18 -0
- data/vendor/zstd/tests/cli-tests/common/platform.sh +47 -0
- data/vendor/zstd/tests/cli-tests/compression/adapt.sh +14 -0
- data/vendor/zstd/tests/cli-tests/compression/basic.sh +36 -0
- data/vendor/zstd/tests/cli-tests/compression/compress-literals.sh +10 -0
- data/vendor/zstd/tests/cli-tests/compression/format.sh +16 -0
- data/vendor/zstd/tests/cli-tests/compression/golden.sh +16 -0
- data/vendor/zstd/tests/cli-tests/compression/gzip-compat.sh +17 -0
- data/vendor/zstd/tests/cli-tests/compression/levels.sh +75 -0
- data/vendor/zstd/tests/cli-tests/compression/levels.sh.stderr.exact +80 -0
- data/vendor/zstd/tests/cli-tests/compression/long-distance-matcher.sh +7 -0
- data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh +22 -0
- data/vendor/zstd/tests/cli-tests/compression/multi-threaded.sh.stderr.exact +21 -0
- data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh +21 -0
- data/vendor/zstd/tests/cli-tests/compression/multiple-files.sh.stdout.exact +12 -0
- data/vendor/zstd/tests/cli-tests/compression/row-match-finder.sh +7 -0
- data/vendor/zstd/tests/cli-tests/compression/setup +7 -0
- data/vendor/zstd/tests/cli-tests/compression/stream-size.sh +7 -0
- data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh +11 -0
- data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stderr.glob +5 -0
- data/vendor/zstd/tests/cli-tests/compression/verbose-wlog.sh.stdout.glob +5 -0
- data/vendor/zstd/tests/cli-tests/compression/window-resize.sh +9 -0
- data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stderr.ignore +0 -0
- data/vendor/zstd/tests/cli-tests/compression/window-resize.sh.stdout.glob +3 -0
- data/vendor/zstd/tests/cli-tests/decompression/detectErrors.sh +11 -0
- data/vendor/zstd/tests/cli-tests/decompression/golden.sh +7 -0
- data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh +57 -0
- data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stderr.exact +11 -0
- data/vendor/zstd/tests/cli-tests/decompression/pass-through.sh.stdout.exact +25 -0
- data/vendor/zstd/tests/cli-tests/determinism/basic.sh +36 -0
- data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/determinism/basic.sh.stdout.exact +880 -0
- data/vendor/zstd/tests/cli-tests/determinism/multithread.sh +45 -0
- data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/determinism/multithread.sh.stdout.exact +260 -0
- data/vendor/zstd/tests/cli-tests/determinism/reuse.sh +44 -0
- data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/determinism/reuse.sh.stdout.exact +19 -0
- data/vendor/zstd/tests/cli-tests/determinism/setup +5 -0
- data/vendor/zstd/tests/cli-tests/determinism/setup_once +30 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh +9 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/empty-input.sh.stderr.exact +1 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh +3 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.exit +1 -0
- data/vendor/zstd/tests/cli-tests/dict-builder/no-inputs.sh.stderr.exact +5 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh +29 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/dictionary-mismatch.sh.stderr.exact +7 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/golden.sh +9 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/setup +6 -0
- data/vendor/zstd/tests/cli-tests/dictionaries/setup_once +24 -0
- data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh +49 -0
- data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact +0 -0
- data/vendor/zstd/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact +0 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh +12 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-dir-without-write-perm.sh.stderr.exact +30 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh +9 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-file.sh.stderr.glob +46 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-file-to-stdout.sh.stderr.exact +24 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-file.sh.stderr.glob +28 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/compress-stdin-to-stdout.sh.stderr.exact +18 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh +8 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-file.sh.stderr.glob +42 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh +7 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-file-to-stdout.sh.stderr.exact +18 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh +7 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-file.sh.stderr.glob +24 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh +7 -0
- data/vendor/zstd/tests/cli-tests/file-stat/decompress-stdin-to-stdout.sh.stderr.exact +14 -0
- data/vendor/zstd/tests/cli-tests/progress/no-progress.sh +46 -0
- data/vendor/zstd/tests/cli-tests/progress/no-progress.sh.stderr.glob +96 -0
- data/vendor/zstd/tests/cli-tests/progress/progress.sh +41 -0
- data/vendor/zstd/tests/cli-tests/progress/progress.sh.stderr.glob +62 -0
- data/vendor/zstd/tests/cli-tests/run.py +732 -0
- data/vendor/zstd/tests/cli-tests/zstd-symlinks/setup +6 -0
- data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh +12 -0
- data/vendor/zstd/tests/cli-tests/zstd-symlinks/zstdcat.sh.stdout.exact +8 -0
- data/vendor/zstd/tests/datagencli.c +149 -0
- data/vendor/zstd/tests/decodecorpus.c +1998 -0
- data/vendor/zstd/tests/dict-files/zero-weight-dict +0 -0
- data/vendor/zstd/tests/external_matchfinder.c +140 -0
- data/vendor/zstd/tests/external_matchfinder.h +39 -0
- data/vendor/zstd/tests/fullbench.c +1210 -0
- data/vendor/zstd/tests/fuzz/Makefile +278 -0
- data/vendor/zstd/tests/fuzz/README.md +161 -0
- data/vendor/zstd/tests/fuzz/block_decompress.c +53 -0
- data/vendor/zstd/tests/fuzz/block_round_trip.c +103 -0
- data/vendor/zstd/tests/fuzz/decompress_cross_format.c +130 -0
- data/vendor/zstd/tests/fuzz/decompress_dstSize_tooSmall.c +74 -0
- data/vendor/zstd/tests/fuzz/dictionary_decompress.c +77 -0
- data/vendor/zstd/tests/fuzz/dictionary_loader.c +106 -0
- data/vendor/zstd/tests/fuzz/dictionary_round_trip.c +155 -0
- data/vendor/zstd/tests/fuzz/dictionary_stream_round_trip.c +209 -0
- data/vendor/zstd/tests/fuzz/fse_read_ncount.c +100 -0
- data/vendor/zstd/tests/fuzz/fuzz.h +57 -0
- data/vendor/zstd/tests/fuzz/fuzz.py +910 -0
- data/vendor/zstd/tests/fuzz/fuzz_data_producer.c +95 -0
- data/vendor/zstd/tests/fuzz/fuzz_data_producer.h +66 -0
- data/vendor/zstd/tests/fuzz/fuzz_helpers.c +47 -0
- data/vendor/zstd/tests/fuzz/fuzz_helpers.h +82 -0
- data/vendor/zstd/tests/fuzz/fuzz_third_party_seq_prod.h +116 -0
- data/vendor/zstd/tests/fuzz/generate_sequences.c +88 -0
- data/vendor/zstd/tests/fuzz/huf_decompress.c +68 -0
- data/vendor/zstd/tests/fuzz/huf_round_trip.c +137 -0
- data/vendor/zstd/tests/fuzz/raw_dictionary_round_trip.c +119 -0
- data/vendor/zstd/tests/fuzz/regression_driver.c +90 -0
- data/vendor/zstd/tests/fuzz/seekable_roundtrip.c +88 -0
- data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/Makefile +16 -0
- data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/README.md +12 -0
- data/vendor/zstd/tests/fuzz/seq_prod_fuzz_example/example_seq_prod.c +52 -0
- data/vendor/zstd/tests/fuzz/sequence_compression_api.c +452 -0
- data/vendor/zstd/tests/fuzz/simple_compress.c +60 -0
- data/vendor/zstd/tests/fuzz/simple_decompress.c +59 -0
- data/vendor/zstd/tests/fuzz/simple_round_trip.c +182 -0
- data/vendor/zstd/tests/fuzz/stream_decompress.c +119 -0
- data/vendor/zstd/tests/fuzz/stream_round_trip.c +218 -0
- data/vendor/zstd/tests/fuzz/zstd_frame_info.c +43 -0
- data/vendor/zstd/tests/fuzz/zstd_helpers.c +208 -0
- data/vendor/zstd/tests/fuzz/zstd_helpers.h +56 -0
- data/vendor/zstd/tests/fuzzer.c +5482 -0
- data/vendor/zstd/tests/golden-compression/PR-3517-block-splitter-corruption-test +1 -0
- data/vendor/zstd/tests/golden-compression/http +1 -0
- data/vendor/zstd/tests/golden-compression/huffman-compressed-larger +0 -0
- data/vendor/zstd/tests/golden-compression/large-literal-and-match-lengths +0 -0
- data/vendor/zstd/tests/golden-decompression/block-128k.zst +0 -0
- data/vendor/zstd/tests/golden-decompression/empty-block.zst +0 -0
- data/vendor/zstd/tests/golden-decompression/rle-first-block.zst +0 -0
- data/vendor/zstd/tests/golden-decompression/zeroSeq_2B.zst +0 -0
- data/vendor/zstd/tests/golden-decompression-errors/off0.bin.zst +0 -0
- data/vendor/zstd/tests/golden-decompression-errors/truncated_huff_state.zst +0 -0
- data/vendor/zstd/tests/golden-decompression-errors/zeroSeq_extraneous.zst +0 -0
- data/vendor/zstd/tests/golden-dictionaries/http-dict-missing-symbols +0 -0
- data/vendor/zstd/tests/gzip/Makefile +45 -0
- data/vendor/zstd/tests/gzip/gzip-env.sh +46 -0
- data/vendor/zstd/tests/gzip/helin-segv.sh +31 -0
- data/vendor/zstd/tests/gzip/help-version.sh +270 -0
- data/vendor/zstd/tests/gzip/hufts-segv.gz +0 -0
- data/vendor/zstd/tests/gzip/hufts.sh +34 -0
- data/vendor/zstd/tests/gzip/init.cfg +5 -0
- data/vendor/zstd/tests/gzip/init.sh +616 -0
- data/vendor/zstd/tests/gzip/keep.sh +51 -0
- data/vendor/zstd/tests/gzip/list.sh +31 -0
- data/vendor/zstd/tests/gzip/memcpy-abuse.sh +34 -0
- data/vendor/zstd/tests/gzip/mixed.sh +68 -0
- data/vendor/zstd/tests/gzip/null-suffix-clobber.sh +35 -0
- data/vendor/zstd/tests/gzip/stdin.sh +31 -0
- data/vendor/zstd/tests/gzip/test-driver.sh +150 -0
- data/vendor/zstd/tests/gzip/trailing-nul.sh +37 -0
- data/vendor/zstd/tests/gzip/unpack-invalid.sh +36 -0
- data/vendor/zstd/tests/gzip/z-suffix.sh +30 -0
- data/vendor/zstd/tests/gzip/zdiff.sh +48 -0
- data/vendor/zstd/tests/gzip/zgrep-context.sh +47 -0
- data/vendor/zstd/tests/gzip/zgrep-f.sh +43 -0
- data/vendor/zstd/tests/gzip/zgrep-signal.sh +64 -0
- data/vendor/zstd/tests/gzip/znew-k.sh +40 -0
- data/vendor/zstd/tests/invalidDictionaries.c +61 -0
- data/vendor/zstd/tests/largeDictionary.c +131 -0
- data/vendor/zstd/tests/legacy.c +262 -0
- data/vendor/zstd/tests/libzstd_builds.sh +104 -0
- data/vendor/zstd/tests/longmatch.c +123 -0
- data/vendor/zstd/tests/loremOut.c +50 -0
- data/vendor/zstd/tests/loremOut.h +15 -0
- data/vendor/zstd/tests/paramgrill.c +2965 -0
- data/vendor/zstd/tests/playTests.sh +1926 -0
- data/vendor/zstd/tests/poolTests.c +271 -0
- data/vendor/zstd/tests/rateLimiter.py +41 -0
- data/vendor/zstd/tests/regression/Makefile +60 -0
- data/vendor/zstd/tests/regression/README.md +28 -0
- data/vendor/zstd/tests/regression/config.c +404 -0
- data/vendor/zstd/tests/regression/config.h +91 -0
- data/vendor/zstd/tests/regression/data.c +631 -0
- data/vendor/zstd/tests/regression/data.h +121 -0
- data/vendor/zstd/tests/regression/levels.h +59 -0
- data/vendor/zstd/tests/regression/method.c +701 -0
- data/vendor/zstd/tests/regression/method.h +65 -0
- data/vendor/zstd/tests/regression/result.c +30 -0
- data/vendor/zstd/tests/regression/result.h +103 -0
- data/vendor/zstd/tests/regression/results.csv +1480 -0
- data/vendor/zstd/tests/regression/test.c +362 -0
- data/vendor/zstd/tests/roundTripCrash.c +241 -0
- data/vendor/zstd/tests/seqgen.c +260 -0
- data/vendor/zstd/tests/seqgen.h +58 -0
- data/vendor/zstd/tests/test-license.py +156 -0
- data/vendor/zstd/tests/test-variants.sh +115 -0
- data/vendor/zstd/tests/test-zstd-versions.py +308 -0
- data/vendor/zstd/tests/test_process_substitution.bash +92 -0
- data/vendor/zstd/tests/zstreamtest.c +3467 -0
- data/vendor/zstd/zlibWrapper/BUCK +22 -0
- data/vendor/zstd/zlibWrapper/Makefile +120 -0
- data/vendor/zstd/zlibWrapper/README.md +163 -0
- data/vendor/zstd/zlibWrapper/examples/example.c +598 -0
- data/vendor/zstd/zlibWrapper/examples/example_original.c +599 -0
- data/vendor/zstd/zlibWrapper/examples/fitblk.c +254 -0
- data/vendor/zstd/zlibWrapper/examples/fitblk_original.c +233 -0
- data/vendor/zstd/zlibWrapper/examples/minigzip.c +605 -0
- data/vendor/zstd/zlibWrapper/examples/zwrapbench.c +1018 -0
- data/vendor/zstd/zlibWrapper/gzclose.c +26 -0
- data/vendor/zstd/zlibWrapper/gzcompatibility.h +68 -0
- data/vendor/zstd/zlibWrapper/gzguts.h +229 -0
- data/vendor/zstd/zlibWrapper/gzlib.c +587 -0
- data/vendor/zstd/zlibWrapper/gzread.c +637 -0
- data/vendor/zstd/zlibWrapper/gzwrite.c +632 -0
- data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.c +1200 -0
- data/vendor/zstd/zlibWrapper/zstd_zlibwrapper.h +91 -0
- metadata +738 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# ################################################################
|
|
2
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
# All rights reserved.
|
|
4
|
+
#
|
|
5
|
+
# This source code is licensed under both the BSD-style license (found in the
|
|
6
|
+
# LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
7
|
+
# in the COPYING file in the root directory of this source tree).
|
|
8
|
+
# You may select, at your option, one of the above-listed licenses.
|
|
9
|
+
# ################################################################
|
|
10
|
+
|
|
11
|
+
LIBDIR =../lib
|
|
12
|
+
CPPFLAGS += -I$(LIBDIR)
|
|
13
|
+
LIB = $(LIBDIR)/libzstd.a
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
.PHONY: default
|
|
17
|
+
default: all
|
|
18
|
+
|
|
19
|
+
.PHONY: all
|
|
20
|
+
all: simple_compression simple_decompression \
|
|
21
|
+
multiple_simple_compression\
|
|
22
|
+
dictionary_compression dictionary_decompression \
|
|
23
|
+
streaming_compression streaming_decompression \
|
|
24
|
+
multiple_streaming_compression streaming_memory_usage
|
|
25
|
+
|
|
26
|
+
$(LIB) :
|
|
27
|
+
$(MAKE) -C $(LIBDIR) libzstd.a
|
|
28
|
+
|
|
29
|
+
simple_compression.o: common.h
|
|
30
|
+
simple_compression : $(LIB)
|
|
31
|
+
|
|
32
|
+
simple_decompression.o: common.h
|
|
33
|
+
simple_decompression : $(LIB)
|
|
34
|
+
|
|
35
|
+
multiple_simple_compression.o: common.h
|
|
36
|
+
multiple_simple_compression : $(LIB)
|
|
37
|
+
|
|
38
|
+
dictionary_compression.o: common.h
|
|
39
|
+
dictionary_compression : $(LIB)
|
|
40
|
+
|
|
41
|
+
dictionary_decompression.o: common.h
|
|
42
|
+
dictionary_decompression : $(LIB)
|
|
43
|
+
|
|
44
|
+
streaming_compression.o: common.h
|
|
45
|
+
streaming_compression : $(LIB)
|
|
46
|
+
|
|
47
|
+
multiple_streaming_compression.o: common.h
|
|
48
|
+
multiple_streaming_compression : $(LIB)
|
|
49
|
+
|
|
50
|
+
streaming_decompression.o: common.h
|
|
51
|
+
streaming_decompression : $(LIB)
|
|
52
|
+
|
|
53
|
+
streaming_memory_usage.o: common.h
|
|
54
|
+
streaming_memory_usage : $(LIB)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
.PHONY:clean
|
|
58
|
+
clean:
|
|
59
|
+
@$(RM) core *.o tmp* result* *.zst \
|
|
60
|
+
simple_compression simple_decompression \
|
|
61
|
+
multiple_simple_compression \
|
|
62
|
+
dictionary_compression dictionary_decompression \
|
|
63
|
+
streaming_compression streaming_decompression \
|
|
64
|
+
multiple_streaming_compression streaming_memory_usage
|
|
65
|
+
@echo Cleaning completed
|
|
66
|
+
|
|
67
|
+
.PHONY:test
|
|
68
|
+
test: all
|
|
69
|
+
cp README.md tmp
|
|
70
|
+
cp Makefile tmp2
|
|
71
|
+
@echo -- Simple compression tests
|
|
72
|
+
./simple_compression tmp
|
|
73
|
+
./simple_decompression tmp.zst
|
|
74
|
+
./multiple_simple_compression *.c
|
|
75
|
+
./streaming_decompression tmp.zst > /dev/null
|
|
76
|
+
@echo -- Streaming memory usage
|
|
77
|
+
./streaming_memory_usage
|
|
78
|
+
@echo -- Streaming compression tests
|
|
79
|
+
./streaming_compression tmp
|
|
80
|
+
./streaming_decompression tmp.zst > /dev/null
|
|
81
|
+
@echo -- Edge cases detection
|
|
82
|
+
! ./streaming_decompression tmp # invalid input, must fail
|
|
83
|
+
! ./simple_decompression tmp # invalid input, must fail
|
|
84
|
+
touch tmpNull # create 0-size file
|
|
85
|
+
./simple_compression tmpNull
|
|
86
|
+
./simple_decompression tmpNull.zst # 0-size frame : must work
|
|
87
|
+
@echo -- Multiple streaming tests
|
|
88
|
+
./multiple_streaming_compression *.c
|
|
89
|
+
@echo -- Dictionary compression tests
|
|
90
|
+
./dictionary_compression tmp2 tmp README.md
|
|
91
|
+
./dictionary_decompression tmp2.zst tmp.zst README.md
|
|
92
|
+
$(RM) tmp* *.zst
|
|
93
|
+
@echo tests completed
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Zstandard library : usage examples
|
|
2
|
+
==================================
|
|
3
|
+
|
|
4
|
+
- [Simple compression](simple_compression.c) :
|
|
5
|
+
Compress a single file.
|
|
6
|
+
Introduces usage of : `ZSTD_compress()`
|
|
7
|
+
|
|
8
|
+
- [Simple decompression](simple_decompression.c) :
|
|
9
|
+
Decompress a single file.
|
|
10
|
+
Only compatible with simple compression.
|
|
11
|
+
Result remains in memory.
|
|
12
|
+
Introduces usage of : `ZSTD_decompress()`
|
|
13
|
+
|
|
14
|
+
- [Multiple simple compression](multiple_simple_compression.c) :
|
|
15
|
+
Compress multiple files (in simple mode) in a single command line.
|
|
16
|
+
Demonstrates memory preservation technique that
|
|
17
|
+
minimizes malloc()/free() calls by re-using existing resources.
|
|
18
|
+
Introduces usage of : `ZSTD_compressCCtx()`
|
|
19
|
+
|
|
20
|
+
- [Streaming memory usage](streaming_memory_usage.c) :
|
|
21
|
+
Provides amount of memory used by streaming context.
|
|
22
|
+
Introduces usage of : `ZSTD_sizeof_CStream()`
|
|
23
|
+
|
|
24
|
+
- [Streaming compression](streaming_compression.c) :
|
|
25
|
+
Compress a single file.
|
|
26
|
+
Introduces usage of : `ZSTD_compressStream()`
|
|
27
|
+
|
|
28
|
+
- [Multiple Streaming compression](multiple_streaming_compression.c) :
|
|
29
|
+
Compress multiple files (in streaming mode) in a single command line.
|
|
30
|
+
Introduces memory usage preservation technique,
|
|
31
|
+
reducing impact of malloc()/free() and memset() by re-using existing resources.
|
|
32
|
+
|
|
33
|
+
- [Streaming decompression](streaming_decompression.c) :
|
|
34
|
+
Decompress a single file compressed by zstd.
|
|
35
|
+
Compatible with both simple and streaming compression.
|
|
36
|
+
Result is sent to stdout.
|
|
37
|
+
Introduces usage of : `ZSTD_decompressStream()`
|
|
38
|
+
|
|
39
|
+
- [Dictionary compression](dictionary_compression.c) :
|
|
40
|
+
Compress multiple files using the same dictionary.
|
|
41
|
+
Introduces usage of : `ZSTD_createCDict()` and `ZSTD_compress_usingCDict()`
|
|
42
|
+
|
|
43
|
+
- [Dictionary decompression](dictionary_decompression.c) :
|
|
44
|
+
Decompress multiple files using the same dictionary.
|
|
45
|
+
Result remains in memory.
|
|
46
|
+
Introduces usage of : `ZSTD_createDDict()` and `ZSTD_decompress_usingDDict()`
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under both the BSD-style license (found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
7
|
+
* in the COPYING file in the root directory of this source tree).
|
|
8
|
+
* You may select, at your option, one of the above-listed licenses.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/*
|
|
12
|
+
* This header file has common utility functions used in examples.
|
|
13
|
+
*/
|
|
14
|
+
#ifndef COMMON_H
|
|
15
|
+
#define COMMON_H
|
|
16
|
+
|
|
17
|
+
#include <stdlib.h> // malloc, free, exit
|
|
18
|
+
#include <stdio.h> // fprintf, perror, fopen, etc.
|
|
19
|
+
#include <string.h> // strerror
|
|
20
|
+
#include <errno.h> // errno
|
|
21
|
+
#include <sys/stat.h> // stat
|
|
22
|
+
#include <zstd.h>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
/* UNUSED_ATTR tells the compiler it is okay if the function is unused. */
|
|
26
|
+
#if defined(__GNUC__)
|
|
27
|
+
# define UNUSED_ATTR __attribute__((unused))
|
|
28
|
+
#else
|
|
29
|
+
# define UNUSED_ATTR
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
#define HEADER_FUNCTION static UNUSED_ATTR
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* Define the returned error code from utility functions.
|
|
37
|
+
*/
|
|
38
|
+
typedef enum {
|
|
39
|
+
ERROR_fsize = 1,
|
|
40
|
+
ERROR_fopen = 2,
|
|
41
|
+
ERROR_fclose = 3,
|
|
42
|
+
ERROR_fread = 4,
|
|
43
|
+
ERROR_fwrite = 5,
|
|
44
|
+
ERROR_loadFile = 6,
|
|
45
|
+
ERROR_saveFile = 7,
|
|
46
|
+
ERROR_malloc = 8,
|
|
47
|
+
ERROR_largeFile = 9,
|
|
48
|
+
} COMMON_ErrorCode;
|
|
49
|
+
|
|
50
|
+
/*! CHECK
|
|
51
|
+
* Check that the condition holds. If it doesn't print a message and die.
|
|
52
|
+
*/
|
|
53
|
+
#define CHECK(cond, ...) \
|
|
54
|
+
do { \
|
|
55
|
+
if (!(cond)) { \
|
|
56
|
+
fprintf(stderr, \
|
|
57
|
+
"%s:%d CHECK(%s) failed: ", \
|
|
58
|
+
__FILE__, \
|
|
59
|
+
__LINE__, \
|
|
60
|
+
#cond); \
|
|
61
|
+
fprintf(stderr, "" __VA_ARGS__); \
|
|
62
|
+
fprintf(stderr, "\n"); \
|
|
63
|
+
exit(1); \
|
|
64
|
+
} \
|
|
65
|
+
} while (0)
|
|
66
|
+
|
|
67
|
+
/*! CHECK_ZSTD
|
|
68
|
+
* Check the zstd error code and die if an error occurred after printing a
|
|
69
|
+
* message.
|
|
70
|
+
*/
|
|
71
|
+
#define CHECK_ZSTD(fn) \
|
|
72
|
+
do { \
|
|
73
|
+
size_t const err = (fn); \
|
|
74
|
+
CHECK(!ZSTD_isError(err), "%s", ZSTD_getErrorName(err)); \
|
|
75
|
+
} while (0)
|
|
76
|
+
|
|
77
|
+
/*! fsize_orDie() :
|
|
78
|
+
* Get the size of a given file path.
|
|
79
|
+
*
|
|
80
|
+
* @return The size of a given file path.
|
|
81
|
+
*/
|
|
82
|
+
HEADER_FUNCTION size_t fsize_orDie(const char *filename)
|
|
83
|
+
{
|
|
84
|
+
struct stat st;
|
|
85
|
+
if (stat(filename, &st) != 0) {
|
|
86
|
+
/* error */
|
|
87
|
+
perror(filename);
|
|
88
|
+
exit(ERROR_fsize);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
off_t const fileSize = st.st_size;
|
|
92
|
+
size_t const size = (size_t)fileSize;
|
|
93
|
+
/* 1. fileSize should be non-negative,
|
|
94
|
+
* 2. if off_t -> size_t type conversion results in discrepancy,
|
|
95
|
+
* the file size is too large for type size_t.
|
|
96
|
+
*/
|
|
97
|
+
if ((fileSize < 0) || (fileSize != (off_t)size)) {
|
|
98
|
+
fprintf(stderr, "%s : filesize too large \n", filename);
|
|
99
|
+
exit(ERROR_largeFile);
|
|
100
|
+
}
|
|
101
|
+
return size;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/*! fopen_orDie() :
|
|
105
|
+
* Open a file using given file path and open option.
|
|
106
|
+
*
|
|
107
|
+
* @return If successful this function will return a FILE pointer to an
|
|
108
|
+
* opened file otherwise it sends an error to stderr and exits.
|
|
109
|
+
*/
|
|
110
|
+
HEADER_FUNCTION FILE* fopen_orDie(const char *filename, const char *instruction)
|
|
111
|
+
{
|
|
112
|
+
FILE* const inFile = fopen(filename, instruction);
|
|
113
|
+
if (inFile) return inFile;
|
|
114
|
+
/* error */
|
|
115
|
+
perror(filename);
|
|
116
|
+
exit(ERROR_fopen);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/*! fclose_orDie() :
|
|
120
|
+
* Close an opened file using given FILE pointer.
|
|
121
|
+
*/
|
|
122
|
+
HEADER_FUNCTION void fclose_orDie(FILE* file)
|
|
123
|
+
{
|
|
124
|
+
if (!fclose(file)) { return; };
|
|
125
|
+
/* error */
|
|
126
|
+
perror("fclose");
|
|
127
|
+
exit(ERROR_fclose);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/*! fread_orDie() :
|
|
131
|
+
*
|
|
132
|
+
* Read sizeToRead bytes from a given file, storing them at the
|
|
133
|
+
* location given by buffer.
|
|
134
|
+
*
|
|
135
|
+
* @return The number of bytes read.
|
|
136
|
+
*/
|
|
137
|
+
HEADER_FUNCTION size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file)
|
|
138
|
+
{
|
|
139
|
+
size_t const readSize = fread(buffer, 1, sizeToRead, file);
|
|
140
|
+
if (readSize == sizeToRead) return readSize; /* good */
|
|
141
|
+
if (feof(file)) return readSize; /* good, reached end of file */
|
|
142
|
+
/* error */
|
|
143
|
+
perror("fread");
|
|
144
|
+
exit(ERROR_fread);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/*! fwrite_orDie() :
|
|
148
|
+
*
|
|
149
|
+
* Write sizeToWrite bytes to a file pointed to by file, obtaining
|
|
150
|
+
* them from a location given by buffer.
|
|
151
|
+
*
|
|
152
|
+
* Note: This function will send an error to stderr and exit if it
|
|
153
|
+
* cannot write data to the given file pointer.
|
|
154
|
+
*
|
|
155
|
+
* @return The number of bytes written.
|
|
156
|
+
*/
|
|
157
|
+
HEADER_FUNCTION size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file)
|
|
158
|
+
{
|
|
159
|
+
size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file);
|
|
160
|
+
if (writtenSize == sizeToWrite) return sizeToWrite; /* good */
|
|
161
|
+
/* error */
|
|
162
|
+
perror("fwrite");
|
|
163
|
+
exit(ERROR_fwrite);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/*! malloc_orDie() :
|
|
167
|
+
* Allocate memory.
|
|
168
|
+
*
|
|
169
|
+
* @return If successful this function returns a pointer to allo-
|
|
170
|
+
* cated memory. If there is an error, this function will send that
|
|
171
|
+
* error to stderr and exit.
|
|
172
|
+
*/
|
|
173
|
+
HEADER_FUNCTION void* malloc_orDie(size_t size)
|
|
174
|
+
{
|
|
175
|
+
void* const buff = malloc(size);
|
|
176
|
+
if (buff) return buff;
|
|
177
|
+
/* error */
|
|
178
|
+
perror("malloc");
|
|
179
|
+
exit(ERROR_malloc);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/*! loadFile_orDie() :
|
|
183
|
+
* load file into buffer (memory).
|
|
184
|
+
*
|
|
185
|
+
* Note: This function will send an error to stderr and exit if it
|
|
186
|
+
* cannot read data from the given file path.
|
|
187
|
+
*
|
|
188
|
+
* @return If successful this function will load file into buffer and
|
|
189
|
+
* return file size, otherwise it will printout an error to stderr and exit.
|
|
190
|
+
*/
|
|
191
|
+
HEADER_FUNCTION size_t loadFile_orDie(const char* fileName, void* buffer, size_t bufferSize)
|
|
192
|
+
{
|
|
193
|
+
size_t const fileSize = fsize_orDie(fileName);
|
|
194
|
+
CHECK(fileSize <= bufferSize, "File too large!");
|
|
195
|
+
|
|
196
|
+
FILE* const inFile = fopen_orDie(fileName, "rb");
|
|
197
|
+
size_t const readSize = fread(buffer, 1, fileSize, inFile);
|
|
198
|
+
if (readSize != (size_t)fileSize) {
|
|
199
|
+
fprintf(stderr, "fread: %s : %s \n", fileName, strerror(errno));
|
|
200
|
+
exit(ERROR_fread);
|
|
201
|
+
}
|
|
202
|
+
fclose(inFile); /* can't fail, read only */
|
|
203
|
+
return fileSize;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/*! mallocAndLoadFile_orDie() :
|
|
207
|
+
* allocate memory buffer and then load file into it.
|
|
208
|
+
*
|
|
209
|
+
* Note: This function will send an error to stderr and exit if memory allocation
|
|
210
|
+
* fails or it cannot read data from the given file path.
|
|
211
|
+
*
|
|
212
|
+
* @return If successful this function will return buffer and bufferSize(=fileSize),
|
|
213
|
+
* otherwise it will printout an error to stderr and exit.
|
|
214
|
+
*/
|
|
215
|
+
HEADER_FUNCTION void* mallocAndLoadFile_orDie(const char* fileName, size_t* bufferSize)
|
|
216
|
+
{
|
|
217
|
+
size_t const fileSize = fsize_orDie(fileName);
|
|
218
|
+
*bufferSize = fileSize;
|
|
219
|
+
void* const buffer = malloc_orDie(*bufferSize);
|
|
220
|
+
loadFile_orDie(fileName, buffer, *bufferSize);
|
|
221
|
+
return buffer;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/*! saveFile_orDie() :
|
|
225
|
+
*
|
|
226
|
+
* Save buffSize bytes to a given file path, obtaining them from a location pointed
|
|
227
|
+
* to by buff.
|
|
228
|
+
*
|
|
229
|
+
* Note: This function will send an error to stderr and exit if it
|
|
230
|
+
* cannot write to a given file.
|
|
231
|
+
*/
|
|
232
|
+
HEADER_FUNCTION void saveFile_orDie(const char* fileName, const void* buff, size_t buffSize)
|
|
233
|
+
{
|
|
234
|
+
FILE* const oFile = fopen_orDie(fileName, "wb");
|
|
235
|
+
size_t const wSize = fwrite(buff, 1, buffSize, oFile);
|
|
236
|
+
if (wSize != (size_t)buffSize) {
|
|
237
|
+
fprintf(stderr, "fwrite: %s : %s \n", fileName, strerror(errno));
|
|
238
|
+
exit(ERROR_fwrite);
|
|
239
|
+
}
|
|
240
|
+
if (fclose(oFile)) {
|
|
241
|
+
perror(fileName);
|
|
242
|
+
exit(ERROR_fclose);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
#endif
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under both the BSD-style license (found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
7
|
+
* in the COPYING file in the root directory of this source tree).
|
|
8
|
+
* You may select, at your option, one of the above-listed licenses.
|
|
9
|
+
**/
|
|
10
|
+
|
|
11
|
+
/* This example deals with Dictionary compression,
|
|
12
|
+
* its counterpart is `examples/dictionary_decompression.c` .
|
|
13
|
+
* These examples presume that a dictionary already exists.
|
|
14
|
+
* The main method to create a dictionary is `zstd --train`,
|
|
15
|
+
* look at the CLI documentation for details.
|
|
16
|
+
* Another possible method is to employ dictionary training API,
|
|
17
|
+
* published in `lib/zdict.h` .
|
|
18
|
+
**/
|
|
19
|
+
|
|
20
|
+
#include <stdio.h> // printf
|
|
21
|
+
#include <stdlib.h> // free
|
|
22
|
+
#include <string.h> // memset, strcat
|
|
23
|
+
#include <zstd.h> // presumes zstd library is installed
|
|
24
|
+
#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD()
|
|
25
|
+
|
|
26
|
+
/* createDict() :
|
|
27
|
+
** `dictFileName` is supposed already created using `zstd --train` */
|
|
28
|
+
static ZSTD_CDict* createCDict_orDie(const char* dictFileName, int cLevel)
|
|
29
|
+
{
|
|
30
|
+
size_t dictSize;
|
|
31
|
+
printf("loading dictionary %s \n", dictFileName);
|
|
32
|
+
void* const dictBuffer = mallocAndLoadFile_orDie(dictFileName, &dictSize);
|
|
33
|
+
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, cLevel);
|
|
34
|
+
CHECK(cdict != NULL, "ZSTD_createCDict() failed!");
|
|
35
|
+
free(dictBuffer);
|
|
36
|
+
return cdict;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
static void compress(const char* fname, const char* oname, const ZSTD_CDict* cdict)
|
|
41
|
+
{
|
|
42
|
+
size_t fSize;
|
|
43
|
+
void* const fBuff = mallocAndLoadFile_orDie(fname, &fSize);
|
|
44
|
+
size_t const cBuffSize = ZSTD_compressBound(fSize);
|
|
45
|
+
void* const cBuff = malloc_orDie(cBuffSize);
|
|
46
|
+
|
|
47
|
+
/* Compress using the dictionary.
|
|
48
|
+
* This function writes the dictionary id, and content size into the header.
|
|
49
|
+
* But, it doesn't use a checksum. You can control these options using the
|
|
50
|
+
* advanced API: ZSTD_CCtx_setParameter(), ZSTD_CCtx_refCDict(),
|
|
51
|
+
* and ZSTD_compress2().
|
|
52
|
+
*/
|
|
53
|
+
ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
|
54
|
+
CHECK(cctx != NULL, "ZSTD_createCCtx() failed!");
|
|
55
|
+
size_t const cSize = ZSTD_compress_usingCDict(cctx, cBuff, cBuffSize, fBuff, fSize, cdict);
|
|
56
|
+
CHECK_ZSTD(cSize);
|
|
57
|
+
|
|
58
|
+
saveFile_orDie(oname, cBuff, cSize);
|
|
59
|
+
|
|
60
|
+
/* success */
|
|
61
|
+
printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname);
|
|
62
|
+
|
|
63
|
+
ZSTD_freeCCtx(cctx); /* never fails */
|
|
64
|
+
free(fBuff);
|
|
65
|
+
free(cBuff);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
static char* createOutFilename_orDie(const char* filename)
|
|
70
|
+
{
|
|
71
|
+
size_t const inL = strlen(filename);
|
|
72
|
+
size_t const outL = inL + 5;
|
|
73
|
+
void* outSpace = malloc_orDie(outL);
|
|
74
|
+
memset(outSpace, 0, outL);
|
|
75
|
+
strcat(outSpace, filename);
|
|
76
|
+
strcat(outSpace, ".zst");
|
|
77
|
+
return (char*)outSpace;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
int main(int argc, const char** argv)
|
|
81
|
+
{
|
|
82
|
+
const char* const exeName = argv[0];
|
|
83
|
+
int const cLevel = 3;
|
|
84
|
+
|
|
85
|
+
if (argc<3) {
|
|
86
|
+
fprintf(stderr, "wrong arguments\n");
|
|
87
|
+
fprintf(stderr, "usage:\n");
|
|
88
|
+
fprintf(stderr, "%s [FILES] dictionary\n", exeName);
|
|
89
|
+
return 1;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* load dictionary only once */
|
|
93
|
+
const char* const dictName = argv[argc-1];
|
|
94
|
+
ZSTD_CDict* const dictPtr = createCDict_orDie(dictName, cLevel);
|
|
95
|
+
|
|
96
|
+
int u;
|
|
97
|
+
for (u=1; u<argc-1; u++) {
|
|
98
|
+
const char* inFilename = argv[u];
|
|
99
|
+
char* const outFilename = createOutFilename_orDie(inFilename);
|
|
100
|
+
compress(inFilename, outFilename, dictPtr);
|
|
101
|
+
free(outFilename);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
ZSTD_freeCDict(dictPtr);
|
|
105
|
+
printf("All %u files compressed. \n", argc-2);
|
|
106
|
+
return 0;
|
|
107
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under both the BSD-style license (found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
7
|
+
* in the COPYING file in the root directory of this source tree).
|
|
8
|
+
* You may select, at your option, one of the above-listed licenses.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
#include <stdio.h> // printf
|
|
13
|
+
#include <stdlib.h> // free
|
|
14
|
+
#include <zstd.h> // presumes zstd library is installed
|
|
15
|
+
#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD()
|
|
16
|
+
|
|
17
|
+
/* createDict() :
|
|
18
|
+
`dictFileName` is supposed to have been created using `zstd --train` */
|
|
19
|
+
static ZSTD_DDict* createDict_orDie(const char* dictFileName)
|
|
20
|
+
{
|
|
21
|
+
size_t dictSize;
|
|
22
|
+
printf("loading dictionary %s \n", dictFileName);
|
|
23
|
+
void* const dictBuffer = mallocAndLoadFile_orDie(dictFileName, &dictSize);
|
|
24
|
+
ZSTD_DDict* const ddict = ZSTD_createDDict(dictBuffer, dictSize);
|
|
25
|
+
CHECK(ddict != NULL, "ZSTD_createDDict() failed!");
|
|
26
|
+
free(dictBuffer);
|
|
27
|
+
return ddict;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static void decompress(const char* fname, const ZSTD_DDict* ddict)
|
|
31
|
+
{
|
|
32
|
+
size_t cSize;
|
|
33
|
+
void* const cBuff = mallocAndLoadFile_orDie(fname, &cSize);
|
|
34
|
+
/* Read the content size from the frame header. For simplicity we require
|
|
35
|
+
* that it is always present. By default, zstd will write the content size
|
|
36
|
+
* in the header when it is known. If you can't guarantee that the frame
|
|
37
|
+
* content size is always written into the header, either use streaming
|
|
38
|
+
* decompression, or ZSTD_decompressBound().
|
|
39
|
+
*/
|
|
40
|
+
unsigned long long const rSize = ZSTD_getFrameContentSize(cBuff, cSize);
|
|
41
|
+
CHECK(rSize != ZSTD_CONTENTSIZE_ERROR, "%s: not compressed by zstd!", fname);
|
|
42
|
+
CHECK(rSize != ZSTD_CONTENTSIZE_UNKNOWN, "%s: original size unknown!", fname);
|
|
43
|
+
void* const rBuff = malloc_orDie((size_t)rSize);
|
|
44
|
+
|
|
45
|
+
/* Check that the dictionary ID matches.
|
|
46
|
+
* If a non-zstd dictionary is used, then both will be zero.
|
|
47
|
+
* By default zstd always writes the dictionary ID into the frame.
|
|
48
|
+
* Zstd will check if there is a dictionary ID mismatch as well.
|
|
49
|
+
*/
|
|
50
|
+
unsigned const expectedDictID = ZSTD_getDictID_fromDDict(ddict);
|
|
51
|
+
unsigned const actualDictID = ZSTD_getDictID_fromFrame(cBuff, cSize);
|
|
52
|
+
CHECK(actualDictID == expectedDictID,
|
|
53
|
+
"DictID mismatch: expected %u got %u",
|
|
54
|
+
expectedDictID,
|
|
55
|
+
actualDictID);
|
|
56
|
+
|
|
57
|
+
/* Decompress using the dictionary.
|
|
58
|
+
* If you need to control the decompression parameters, then use the
|
|
59
|
+
* advanced API: ZSTD_DCtx_setParameter(), ZSTD_DCtx_refDDict(), and
|
|
60
|
+
* ZSTD_decompressDCtx().
|
|
61
|
+
*/
|
|
62
|
+
ZSTD_DCtx* const dctx = ZSTD_createDCtx();
|
|
63
|
+
CHECK(dctx != NULL, "ZSTD_createDCtx() failed!");
|
|
64
|
+
size_t const dSize = ZSTD_decompress_usingDDict(dctx, rBuff, rSize, cBuff, cSize, ddict);
|
|
65
|
+
CHECK_ZSTD(dSize);
|
|
66
|
+
/* When zstd knows the content size, it will error if it doesn't match. */
|
|
67
|
+
CHECK(dSize == rSize, "Impossible because zstd will check this condition!");
|
|
68
|
+
|
|
69
|
+
/* success */
|
|
70
|
+
printf("%25s : %6u -> %7u \n", fname, (unsigned)cSize, (unsigned)rSize);
|
|
71
|
+
|
|
72
|
+
ZSTD_freeDCtx(dctx);
|
|
73
|
+
free(rBuff);
|
|
74
|
+
free(cBuff);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
int main(int argc, const char** argv)
|
|
79
|
+
{
|
|
80
|
+
const char* const exeName = argv[0];
|
|
81
|
+
|
|
82
|
+
if (argc<3) {
|
|
83
|
+
printf("wrong arguments\n");
|
|
84
|
+
printf("usage:\n");
|
|
85
|
+
printf("%s [FILES] dictionary\n", exeName);
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* load dictionary only once */
|
|
90
|
+
const char* const dictName = argv[argc-1];
|
|
91
|
+
ZSTD_DDict* const dictPtr = createDict_orDie(dictName);
|
|
92
|
+
|
|
93
|
+
int u;
|
|
94
|
+
for (u=1; u<argc-1; u++) decompress(argv[u], dictPtr);
|
|
95
|
+
|
|
96
|
+
ZSTD_freeDDict(dictPtr);
|
|
97
|
+
printf("All %u files correctly decoded (in memory) \n", argc-2);
|
|
98
|
+
return 0;
|
|
99
|
+
}
|