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,116 @@
|
|
|
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
|
+
#include <stdio.h> // printf
|
|
12
|
+
#include <stdlib.h> // free
|
|
13
|
+
#include <string.h> // memcpy, strlen
|
|
14
|
+
#include <zstd.h> // presumes zstd library is installed
|
|
15
|
+
#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD()
|
|
16
|
+
|
|
17
|
+
typedef struct {
|
|
18
|
+
void* fBuffer;
|
|
19
|
+
void* cBuffer;
|
|
20
|
+
size_t fBufferSize;
|
|
21
|
+
size_t cBufferSize;
|
|
22
|
+
ZSTD_CCtx* cctx;
|
|
23
|
+
} resources;
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* allocate memory for buffers big enough to compress all files
|
|
27
|
+
* as well as memory for output file name (ofn)
|
|
28
|
+
*/
|
|
29
|
+
static resources createResources_orDie(int argc, const char** argv, char **ofn, size_t* ofnBufferLen)
|
|
30
|
+
{
|
|
31
|
+
size_t maxFilenameLength=0;
|
|
32
|
+
size_t maxFileSize = 0;
|
|
33
|
+
|
|
34
|
+
int argNb;
|
|
35
|
+
for (argNb = 1; argNb < argc; argNb++) {
|
|
36
|
+
const char* const filename = argv[argNb];
|
|
37
|
+
size_t const filenameLength = strlen(filename);
|
|
38
|
+
size_t const fileSize = fsize_orDie(filename);
|
|
39
|
+
|
|
40
|
+
if (filenameLength > maxFilenameLength) maxFilenameLength = filenameLength;
|
|
41
|
+
if (fileSize > maxFileSize) maxFileSize = fileSize;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
resources ress;
|
|
45
|
+
ress.fBufferSize = maxFileSize;
|
|
46
|
+
ress.cBufferSize = ZSTD_compressBound(maxFileSize);
|
|
47
|
+
|
|
48
|
+
*ofnBufferLen = maxFilenameLength + 5;
|
|
49
|
+
*ofn = (char*)malloc_orDie(*ofnBufferLen);
|
|
50
|
+
ress.fBuffer = malloc_orDie(ress.fBufferSize);
|
|
51
|
+
ress.cBuffer = malloc_orDie(ress.cBufferSize);
|
|
52
|
+
ress.cctx = ZSTD_createCCtx();
|
|
53
|
+
CHECK(ress.cctx != NULL, "ZSTD_createCCtx() failed!");
|
|
54
|
+
return ress;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static void freeResources(resources ress, char *outFilename)
|
|
58
|
+
{
|
|
59
|
+
free(ress.fBuffer);
|
|
60
|
+
free(ress.cBuffer);
|
|
61
|
+
ZSTD_freeCCtx(ress.cctx); /* never fails */
|
|
62
|
+
free(outFilename);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* compress with pre-allocated context (ZSTD_CCtx) and input/output buffers*/
|
|
66
|
+
static void compressFile_orDie(resources ress, const char* fname, const char* oname)
|
|
67
|
+
{
|
|
68
|
+
size_t fSize = loadFile_orDie(fname, ress.fBuffer, ress.fBufferSize);
|
|
69
|
+
|
|
70
|
+
/* Compress using the context.
|
|
71
|
+
* If you need more control over parameters, use the advanced API:
|
|
72
|
+
* ZSTD_CCtx_setParameter(), and ZSTD_compress2().
|
|
73
|
+
*/
|
|
74
|
+
size_t const cSize = ZSTD_compressCCtx(ress.cctx, ress.cBuffer, ress.cBufferSize, ress.fBuffer, fSize, 1);
|
|
75
|
+
CHECK_ZSTD(cSize);
|
|
76
|
+
|
|
77
|
+
saveFile_orDie(oname, ress.cBuffer, cSize);
|
|
78
|
+
|
|
79
|
+
/* success */
|
|
80
|
+
printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
int main(int argc, const char** argv)
|
|
84
|
+
{
|
|
85
|
+
const char* const exeName = argv[0];
|
|
86
|
+
|
|
87
|
+
if (argc<2) {
|
|
88
|
+
printf("wrong arguments\n");
|
|
89
|
+
printf("usage:\n");
|
|
90
|
+
printf("%s FILE(s)\n", exeName);
|
|
91
|
+
return 1;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* memory allocation for outFilename and resources */
|
|
95
|
+
char* outFilename;
|
|
96
|
+
size_t outFilenameBufferLen;
|
|
97
|
+
resources const ress = createResources_orDie(argc, argv, &outFilename, &outFilenameBufferLen);
|
|
98
|
+
|
|
99
|
+
/* compress files with shared context, input and output buffers */
|
|
100
|
+
int argNb;
|
|
101
|
+
for (argNb = 1; argNb < argc; argNb++) {
|
|
102
|
+
const char* const inFilename = argv[argNb];
|
|
103
|
+
size_t const inFilenameLen = strlen(inFilename);
|
|
104
|
+
CHECK(inFilenameLen + 5 <= outFilenameBufferLen, "File name too long!");
|
|
105
|
+
memcpy(outFilename, inFilename, inFilenameLen);
|
|
106
|
+
memcpy(outFilename+inFilenameLen, ".zst", 5);
|
|
107
|
+
compressFile_orDie(ress, inFilename, outFilename);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* free memory */
|
|
111
|
+
freeResources(ress,outFilename);
|
|
112
|
+
|
|
113
|
+
printf("compressed %i files \n", argc-1);
|
|
114
|
+
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
/* The objective of this example is to show of to compress multiple successive files
|
|
13
|
+
* while preserving memory management.
|
|
14
|
+
* All structures and buffers will be created only once,
|
|
15
|
+
* and shared across all compression operations */
|
|
16
|
+
|
|
17
|
+
#include <stdio.h> // printf
|
|
18
|
+
#include <stdlib.h> // free
|
|
19
|
+
#include <string.h> // memset, strcat
|
|
20
|
+
#include <zstd.h> // presumes zstd library is installed
|
|
21
|
+
#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD()
|
|
22
|
+
|
|
23
|
+
typedef struct {
|
|
24
|
+
void* buffIn;
|
|
25
|
+
void* buffOut;
|
|
26
|
+
size_t buffInSize;
|
|
27
|
+
size_t buffOutSize;
|
|
28
|
+
ZSTD_CCtx* cctx;
|
|
29
|
+
} resources;
|
|
30
|
+
|
|
31
|
+
static resources createResources_orDie(int cLevel)
|
|
32
|
+
{
|
|
33
|
+
resources ress;
|
|
34
|
+
ress.buffInSize = ZSTD_CStreamInSize(); /* can always read one full block */
|
|
35
|
+
ress.buffOutSize= ZSTD_CStreamOutSize(); /* can always flush a full block */
|
|
36
|
+
ress.buffIn = malloc_orDie(ress.buffInSize);
|
|
37
|
+
ress.buffOut= malloc_orDie(ress.buffOutSize);
|
|
38
|
+
ress.cctx = ZSTD_createCCtx();
|
|
39
|
+
CHECK(ress.cctx != NULL, "ZSTD_createCCtx() failed!");
|
|
40
|
+
|
|
41
|
+
/* Set any compression parameters you want here.
|
|
42
|
+
* They will persist for every compression operation.
|
|
43
|
+
* Here we set the compression level, and enable the checksum.
|
|
44
|
+
*/
|
|
45
|
+
CHECK_ZSTD( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_compressionLevel, cLevel) );
|
|
46
|
+
CHECK_ZSTD( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_checksumFlag, 1) );
|
|
47
|
+
return ress;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static void freeResources(resources ress)
|
|
51
|
+
{
|
|
52
|
+
ZSTD_freeCCtx(ress.cctx);
|
|
53
|
+
free(ress.buffIn);
|
|
54
|
+
free(ress.buffOut);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static void compressFile_orDie(resources ress, const char* fname, const char* outName)
|
|
58
|
+
{
|
|
59
|
+
// Open the input and output files.
|
|
60
|
+
FILE* const fin = fopen_orDie(fname, "rb");
|
|
61
|
+
FILE* const fout = fopen_orDie(outName, "wb");
|
|
62
|
+
|
|
63
|
+
/* Reset the context to a clean state to start a new compression operation.
|
|
64
|
+
* The parameters are sticky, so we keep the compression level and extra
|
|
65
|
+
* parameters that we set in createResources_orDie().
|
|
66
|
+
*/
|
|
67
|
+
CHECK_ZSTD( ZSTD_CCtx_reset(ress.cctx, ZSTD_reset_session_only) );
|
|
68
|
+
|
|
69
|
+
size_t const toRead = ress.buffInSize;
|
|
70
|
+
size_t read;
|
|
71
|
+
while ( (read = fread_orDie(ress.buffIn, toRead, fin)) ) {
|
|
72
|
+
/* This loop is the same as streaming_compression.c.
|
|
73
|
+
* See that file for detailed comments.
|
|
74
|
+
*/
|
|
75
|
+
int const lastChunk = (read < toRead);
|
|
76
|
+
ZSTD_EndDirective const mode = lastChunk ? ZSTD_e_end : ZSTD_e_continue;
|
|
77
|
+
|
|
78
|
+
ZSTD_inBuffer input = { ress.buffIn, read, 0 };
|
|
79
|
+
int finished;
|
|
80
|
+
do {
|
|
81
|
+
ZSTD_outBuffer output = { ress.buffOut, ress.buffOutSize, 0 };
|
|
82
|
+
size_t const remaining = ZSTD_compressStream2(ress.cctx, &output, &input, mode);
|
|
83
|
+
CHECK_ZSTD(remaining);
|
|
84
|
+
fwrite_orDie(ress.buffOut, output.pos, fout);
|
|
85
|
+
finished = lastChunk ? (remaining == 0) : (input.pos == input.size);
|
|
86
|
+
} while (!finished);
|
|
87
|
+
CHECK(input.pos == input.size,
|
|
88
|
+
"Impossible: zstd only returns 0 when the input is completely consumed!");
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
fclose_orDie(fout);
|
|
92
|
+
fclose_orDie(fin);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
int main(int argc, const char** argv)
|
|
96
|
+
{
|
|
97
|
+
const char* const exeName = argv[0];
|
|
98
|
+
|
|
99
|
+
if (argc<2) {
|
|
100
|
+
printf("wrong arguments\n");
|
|
101
|
+
printf("usage:\n");
|
|
102
|
+
printf("%s FILE(s)\n", exeName);
|
|
103
|
+
return 1;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
int const cLevel = 7;
|
|
107
|
+
resources const ress = createResources_orDie(cLevel);
|
|
108
|
+
void* ofnBuffer = NULL;
|
|
109
|
+
size_t ofnbSize = 0;
|
|
110
|
+
|
|
111
|
+
int argNb;
|
|
112
|
+
for (argNb = 1; argNb < argc; argNb++) {
|
|
113
|
+
const char* const ifn = argv[argNb];
|
|
114
|
+
size_t const ifnSize = strlen(ifn);
|
|
115
|
+
size_t const ofnSize = ifnSize + 5;
|
|
116
|
+
if (ofnbSize <= ofnSize) {
|
|
117
|
+
ofnbSize = ofnSize + 16;
|
|
118
|
+
free(ofnBuffer);
|
|
119
|
+
ofnBuffer = malloc_orDie(ofnbSize);
|
|
120
|
+
}
|
|
121
|
+
memset(ofnBuffer, 0, ofnSize);
|
|
122
|
+
strcat(ofnBuffer, ifn);
|
|
123
|
+
strcat(ofnBuffer, ".zst");
|
|
124
|
+
compressFile_orDie(ress, ifn, ofnBuffer);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
freeResources(ress);
|
|
128
|
+
free(ofnBuffer);
|
|
129
|
+
|
|
130
|
+
printf("compressed %i files \n", argc-1);
|
|
131
|
+
|
|
132
|
+
return 0;
|
|
133
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
#include <stdio.h> // printf
|
|
12
|
+
#include <stdlib.h> // free
|
|
13
|
+
#include <string.h> // strlen, strcat, memset
|
|
14
|
+
#include <zstd.h> // presumes zstd library is installed
|
|
15
|
+
#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD()
|
|
16
|
+
|
|
17
|
+
static void compress_orDie(const char* fname, const char* oname)
|
|
18
|
+
{
|
|
19
|
+
size_t fSize;
|
|
20
|
+
void* const fBuff = mallocAndLoadFile_orDie(fname, &fSize);
|
|
21
|
+
size_t const cBuffSize = ZSTD_compressBound(fSize);
|
|
22
|
+
void* const cBuff = malloc_orDie(cBuffSize);
|
|
23
|
+
|
|
24
|
+
/* Compress.
|
|
25
|
+
* If you are doing many compressions, you may want to reuse the context.
|
|
26
|
+
* See the multiple_simple_compression.c example.
|
|
27
|
+
*/
|
|
28
|
+
size_t const cSize = ZSTD_compress(cBuff, cBuffSize, fBuff, fSize, 1);
|
|
29
|
+
CHECK_ZSTD(cSize);
|
|
30
|
+
|
|
31
|
+
saveFile_orDie(oname, cBuff, cSize);
|
|
32
|
+
|
|
33
|
+
/* success */
|
|
34
|
+
printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname);
|
|
35
|
+
|
|
36
|
+
free(fBuff);
|
|
37
|
+
free(cBuff);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static char* createOutFilename_orDie(const char* filename)
|
|
41
|
+
{
|
|
42
|
+
size_t const inL = strlen(filename);
|
|
43
|
+
size_t const outL = inL + 5;
|
|
44
|
+
void* const outSpace = malloc_orDie(outL);
|
|
45
|
+
memset(outSpace, 0, outL);
|
|
46
|
+
strcat(outSpace, filename);
|
|
47
|
+
strcat(outSpace, ".zst");
|
|
48
|
+
return (char*)outSpace;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
int main(int argc, const char** argv)
|
|
52
|
+
{
|
|
53
|
+
const char* const exeName = argv[0];
|
|
54
|
+
|
|
55
|
+
if (argc!=2) {
|
|
56
|
+
printf("wrong arguments\n");
|
|
57
|
+
printf("usage:\n");
|
|
58
|
+
printf("%s FILE\n", exeName);
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const char* const inFilename = argv[1];
|
|
63
|
+
|
|
64
|
+
char* const outFilename = createOutFilename_orDie(inFilename);
|
|
65
|
+
compress_orDie(inFilename, outFilename);
|
|
66
|
+
free(outFilename);
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
#include <stdio.h> // printf
|
|
12
|
+
#include <stdlib.h> // free
|
|
13
|
+
#include <zstd.h> // presumes zstd library is installed
|
|
14
|
+
#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD()
|
|
15
|
+
|
|
16
|
+
static void decompress(const char* fname)
|
|
17
|
+
{
|
|
18
|
+
size_t cSize;
|
|
19
|
+
void* const cBuff = mallocAndLoadFile_orDie(fname, &cSize);
|
|
20
|
+
/* Read the content size from the frame header. For simplicity we require
|
|
21
|
+
* that it is always present. By default, zstd will write the content size
|
|
22
|
+
* in the header when it is known. If you can't guarantee that the frame
|
|
23
|
+
* content size is always written into the header, either use streaming
|
|
24
|
+
* decompression, or ZSTD_decompressBound().
|
|
25
|
+
*/
|
|
26
|
+
unsigned long long const rSize = ZSTD_getFrameContentSize(cBuff, cSize);
|
|
27
|
+
CHECK(rSize != ZSTD_CONTENTSIZE_ERROR, "%s: not compressed by zstd!", fname);
|
|
28
|
+
CHECK(rSize != ZSTD_CONTENTSIZE_UNKNOWN, "%s: original size unknown!", fname);
|
|
29
|
+
|
|
30
|
+
void* const rBuff = malloc_orDie((size_t)rSize);
|
|
31
|
+
|
|
32
|
+
/* Decompress.
|
|
33
|
+
* If you are doing many decompressions, you may want to reuse the context
|
|
34
|
+
* and use ZSTD_decompressDCtx(). If you want to set advanced parameters,
|
|
35
|
+
* use ZSTD_DCtx_setParameter().
|
|
36
|
+
*/
|
|
37
|
+
size_t const dSize = ZSTD_decompress(rBuff, rSize, cBuff, cSize);
|
|
38
|
+
CHECK_ZSTD(dSize);
|
|
39
|
+
/* When zstd knows the content size, it will error if it doesn't match. */
|
|
40
|
+
CHECK(dSize == rSize, "Impossible because zstd will check this condition!");
|
|
41
|
+
|
|
42
|
+
/* success */
|
|
43
|
+
printf("%25s : %6u -> %7u \n", fname, (unsigned)cSize, (unsigned)rSize);
|
|
44
|
+
|
|
45
|
+
free(rBuff);
|
|
46
|
+
free(cBuff);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
int main(int argc, const char** argv)
|
|
50
|
+
{
|
|
51
|
+
const char* const exeName = argv[0];
|
|
52
|
+
|
|
53
|
+
if (argc!=2) {
|
|
54
|
+
printf("wrong arguments\n");
|
|
55
|
+
printf("usage:\n");
|
|
56
|
+
printf("%s FILE\n", exeName);
|
|
57
|
+
return 1;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
decompress(argv[1]);
|
|
61
|
+
|
|
62
|
+
printf("%s correctly decoded (in memory). \n", argv[1]);
|
|
63
|
+
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
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 <string.h> // memset, strcat, strlen
|
|
15
|
+
#include <zstd.h> // presumes zstd library is installed
|
|
16
|
+
#include "common.h" // Helper functions, CHECK(), and CHECK_ZSTD()
|
|
17
|
+
|
|
18
|
+
static void compressFile_orDie(const char* fname, const char* outName, int cLevel,
|
|
19
|
+
int nbThreads)
|
|
20
|
+
{
|
|
21
|
+
fprintf (stderr, "Starting compression of %s with level %d, using %d threads\n",
|
|
22
|
+
fname, cLevel, nbThreads);
|
|
23
|
+
|
|
24
|
+
/* Open the input and output files. */
|
|
25
|
+
FILE* const fin = fopen_orDie(fname, "rb");
|
|
26
|
+
FILE* const fout = fopen_orDie(outName, "wb");
|
|
27
|
+
/* Create the input and output buffers.
|
|
28
|
+
* They may be any size, but we recommend using these functions to size them.
|
|
29
|
+
* Performance will only suffer significantly for very tiny buffers.
|
|
30
|
+
*/
|
|
31
|
+
size_t const buffInSize = ZSTD_CStreamInSize();
|
|
32
|
+
void* const buffIn = malloc_orDie(buffInSize);
|
|
33
|
+
size_t const buffOutSize = ZSTD_CStreamOutSize();
|
|
34
|
+
void* const buffOut = malloc_orDie(buffOutSize);
|
|
35
|
+
|
|
36
|
+
/* Create the context. */
|
|
37
|
+
ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
|
38
|
+
CHECK(cctx != NULL, "ZSTD_createCCtx() failed!");
|
|
39
|
+
|
|
40
|
+
/* Set any parameters you want.
|
|
41
|
+
* Here we set the compression level, and enable the checksum.
|
|
42
|
+
*/
|
|
43
|
+
CHECK_ZSTD( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, cLevel) );
|
|
44
|
+
CHECK_ZSTD( ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, 1) );
|
|
45
|
+
if (nbThreads > 1) {
|
|
46
|
+
size_t const r = ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, nbThreads);
|
|
47
|
+
if (ZSTD_isError(r)) {
|
|
48
|
+
fprintf (stderr, "Note: the linked libzstd library doesn't support multithreading. "
|
|
49
|
+
"Reverting to single-thread mode. \n");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* This loop read from the input file, compresses that entire chunk,
|
|
54
|
+
* and writes all output produced to the output file.
|
|
55
|
+
*/
|
|
56
|
+
size_t const toRead = buffInSize;
|
|
57
|
+
for (;;) {
|
|
58
|
+
size_t read = fread_orDie(buffIn, toRead, fin);
|
|
59
|
+
/* Select the flush mode.
|
|
60
|
+
* If the read may not be finished (read == toRead) we use
|
|
61
|
+
* ZSTD_e_continue. If this is the last chunk, we use ZSTD_e_end.
|
|
62
|
+
* Zstd optimizes the case where the first flush mode is ZSTD_e_end,
|
|
63
|
+
* since it knows it is compressing the entire source in one pass.
|
|
64
|
+
*/
|
|
65
|
+
int const lastChunk = (read < toRead);
|
|
66
|
+
ZSTD_EndDirective const mode = lastChunk ? ZSTD_e_end : ZSTD_e_continue;
|
|
67
|
+
/* Set the input buffer to what we just read.
|
|
68
|
+
* We compress until the input buffer is empty, each time flushing the
|
|
69
|
+
* output.
|
|
70
|
+
*/
|
|
71
|
+
ZSTD_inBuffer input = { buffIn, read, 0 };
|
|
72
|
+
int finished;
|
|
73
|
+
do {
|
|
74
|
+
/* Compress into the output buffer and write all of the output to
|
|
75
|
+
* the file so we can reuse the buffer next iteration.
|
|
76
|
+
*/
|
|
77
|
+
ZSTD_outBuffer output = { buffOut, buffOutSize, 0 };
|
|
78
|
+
size_t const remaining = ZSTD_compressStream2(cctx, &output , &input, mode);
|
|
79
|
+
CHECK_ZSTD(remaining);
|
|
80
|
+
fwrite_orDie(buffOut, output.pos, fout);
|
|
81
|
+
/* If we're on the last chunk we're finished when zstd returns 0,
|
|
82
|
+
* which means its consumed all the input AND finished the frame.
|
|
83
|
+
* Otherwise, we're finished when we've consumed all the input.
|
|
84
|
+
*/
|
|
85
|
+
finished = lastChunk ? (remaining == 0) : (input.pos == input.size);
|
|
86
|
+
} while (!finished);
|
|
87
|
+
CHECK(input.pos == input.size,
|
|
88
|
+
"Impossible: zstd only returns 0 when the input is completely consumed!");
|
|
89
|
+
|
|
90
|
+
if (lastChunk) {
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
ZSTD_freeCCtx(cctx);
|
|
96
|
+
fclose_orDie(fout);
|
|
97
|
+
fclose_orDie(fin);
|
|
98
|
+
free(buffIn);
|
|
99
|
+
free(buffOut);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
static char* createOutFilename_orDie(const char* filename)
|
|
104
|
+
{
|
|
105
|
+
size_t const inL = strlen(filename);
|
|
106
|
+
size_t const outL = inL + 5;
|
|
107
|
+
void* const outSpace = malloc_orDie(outL);
|
|
108
|
+
memset(outSpace, 0, outL);
|
|
109
|
+
strcat(outSpace, filename);
|
|
110
|
+
strcat(outSpace, ".zst");
|
|
111
|
+
return (char*)outSpace;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
int main(int argc, const char** argv)
|
|
115
|
+
{
|
|
116
|
+
const char* const exeName = argv[0];
|
|
117
|
+
|
|
118
|
+
if (argc < 2) {
|
|
119
|
+
printf("wrong arguments\n");
|
|
120
|
+
printf("usage:\n");
|
|
121
|
+
printf("%s FILE [LEVEL] [THREADS]\n", exeName);
|
|
122
|
+
return 1;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
int cLevel = 1;
|
|
126
|
+
int nbThreads = 1;
|
|
127
|
+
|
|
128
|
+
if (argc >= 3) {
|
|
129
|
+
cLevel = atoi (argv[2]);
|
|
130
|
+
CHECK(cLevel != 0, "can't parse LEVEL!");
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (argc >= 4) {
|
|
134
|
+
nbThreads = atoi (argv[3]);
|
|
135
|
+
CHECK(nbThreads != 0, "can't parse THREADS!");
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const char* const inFilename = argv[1];
|
|
139
|
+
|
|
140
|
+
char* const outFilename = createOutFilename_orDie(inFilename);
|
|
141
|
+
compressFile_orDie(inFilename, outFilename, cLevel, nbThreads);
|
|
142
|
+
|
|
143
|
+
free(outFilename); /* not strictly required, since program execution stops there,
|
|
144
|
+
* but some static analyzer may complain otherwise */
|
|
145
|
+
return 0;
|
|
146
|
+
}
|