zstdlib 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGES.md +9 -0
- data/Gemfile +3 -0
- data/README.md +96 -0
- data/Rakefile +29 -0
- data/ext/zstdlib/extconf.rb +53 -0
- data/ext/zstdlib/ruby/zlib-2.2/zlib.c +4659 -0
- data/ext/zstdlib/ruby/zlib-2.3/zlib.c +4686 -0
- data/ext/zstdlib/ruby/zlib-2.4/zlib.c +4843 -0
- data/ext/zstdlib/ruby/zlib-2.5/zlib.c +4848 -0
- data/ext/zstdlib/ruby/zlib-2.6/zlib.c +4890 -0
- data/ext/zstdlib/zlib-1.2.11/adler32.c +186 -0
- data/ext/zstdlib/zlib-1.2.11/compress.c +86 -0
- data/ext/zstdlib/zlib-1.2.11/crc32.c +442 -0
- data/ext/zstdlib/zlib-1.2.11/crc32.h +441 -0
- data/ext/zstdlib/zlib-1.2.11/deflate.c +2163 -0
- data/ext/zstdlib/zlib-1.2.11/deflate.h +349 -0
- data/ext/zstdlib/zlib-1.2.11/gzclose.c +25 -0
- data/ext/zstdlib/zlib-1.2.11/gzguts.h +218 -0
- data/ext/zstdlib/zlib-1.2.11/gzlib.c +637 -0
- data/ext/zstdlib/zlib-1.2.11/gzread.c +654 -0
- data/ext/zstdlib/zlib-1.2.11/gzwrite.c +665 -0
- data/ext/zstdlib/zlib-1.2.11/infback.c +640 -0
- data/ext/zstdlib/zlib-1.2.11/inffast.c +323 -0
- data/ext/zstdlib/zlib-1.2.11/inffast.h +11 -0
- data/ext/zstdlib/zlib-1.2.11/inffixed.h +94 -0
- data/ext/zstdlib/zlib-1.2.11/inflate.c +1561 -0
- data/ext/zstdlib/zlib-1.2.11/inflate.h +125 -0
- data/ext/zstdlib/zlib-1.2.11/inftrees.c +304 -0
- data/ext/zstdlib/zlib-1.2.11/inftrees.h +62 -0
- data/ext/zstdlib/zlib-1.2.11/trees.c +1203 -0
- data/ext/zstdlib/zlib-1.2.11/trees.h +128 -0
- data/ext/zstdlib/zlib-1.2.11/uncompr.c +93 -0
- data/ext/zstdlib/zlib-1.2.11/zconf.h +534 -0
- data/ext/zstdlib/zlib-1.2.11/zlib.h +1912 -0
- data/ext/zstdlib/zlib-1.2.11/zutil.c +325 -0
- data/ext/zstdlib/zlib-1.2.11/zutil.h +271 -0
- data/ext/zstdlib/zlib.mk +14 -0
- data/ext/zstdlib/zlibwrapper/zlibwrapper.c +14 -0
- data/ext/zstdlib/zlibwrapper.mk +14 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/bitstream.h +455 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/compiler.h +140 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/cpu.h +215 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/debug.c +44 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/debug.h +134 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/entropy_common.c +236 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/error_private.c +54 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/error_private.h +76 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/fse.h +708 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/fse_decompress.c +309 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/huf.h +358 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/mem.h +380 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/pool.c +340 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/pool.h +84 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/threading.c +75 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/threading.h +123 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/xxhash.c +876 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/xxhash.h +305 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/zstd_common.c +83 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/zstd_errors.h +93 -0
- data/ext/zstdlib/zstd-1.3.8/lib/common/zstd_internal.h +266 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/fse_compress.c +721 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/hist.c +203 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/hist.h +95 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/huf_compress.c +798 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_compress.c +4290 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_compress_internal.h +860 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_double_fast.c +499 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_double_fast.h +38 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_fast.c +391 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_fast.h +37 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_lazy.c +1106 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_lazy.h +67 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_ldm.c +597 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_ldm.h +105 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_opt.c +1217 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_opt.h +56 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstdmt_compress.c +2107 -0
- data/ext/zstdlib/zstd-1.3.8/lib/compress/zstdmt_compress.h +174 -0
- data/ext/zstdlib/zstd-1.3.8/lib/decompress/huf_decompress.c +1232 -0
- data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_ddict.c +240 -0
- data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_ddict.h +44 -0
- data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress.c +1672 -0
- data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress_block.c +1307 -0
- data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress_block.h +59 -0
- data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress_internal.h +168 -0
- data/ext/zstdlib/zstd-1.3.8/lib/zstd.h +1766 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzclose.c +28 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzcompatibility.h +68 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzguts.h +227 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzlib.c +640 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzread.c +670 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzwrite.c +671 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/zstd_zlibwrapper.c +1105 -0
- data/ext/zstdlib/zstd-1.3.8/zlibWrapper/zstd_zlibwrapper.h +88 -0
- data/ext/zstdlib/zstd.mk +14 -0
- data/lib/zstdlib.rb +6 -0
- data/test/zstdlib_test.rb +21 -0
- metadata +198 -0
@@ -0,0 +1,105 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 2016-present, Yann Collet, Facebook, Inc.
|
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
|
+
*/
|
9
|
+
|
10
|
+
#ifndef ZSTD_LDM_H
|
11
|
+
#define ZSTD_LDM_H
|
12
|
+
|
13
|
+
#if defined (__cplusplus)
|
14
|
+
extern "C" {
|
15
|
+
#endif
|
16
|
+
|
17
|
+
#include "zstd_compress_internal.h" /* ldmParams_t, U32 */
|
18
|
+
#include "zstd.h" /* ZSTD_CCtx, size_t */
|
19
|
+
|
20
|
+
/*-*************************************
|
21
|
+
* Long distance matching
|
22
|
+
***************************************/
|
23
|
+
|
24
|
+
#define ZSTD_LDM_DEFAULT_WINDOW_LOG ZSTD_WINDOWLOG_LIMIT_DEFAULT
|
25
|
+
|
26
|
+
/**
|
27
|
+
* ZSTD_ldm_generateSequences():
|
28
|
+
*
|
29
|
+
* Generates the sequences using the long distance match finder.
|
30
|
+
* Generates long range matching sequences in `sequences`, which parse a prefix
|
31
|
+
* of the source. `sequences` must be large enough to store every sequence,
|
32
|
+
* which can be checked with `ZSTD_ldm_getMaxNbSeq()`.
|
33
|
+
* @returns 0 or an error code.
|
34
|
+
*
|
35
|
+
* NOTE: The user must have called ZSTD_window_update() for all of the input
|
36
|
+
* they have, even if they pass it to ZSTD_ldm_generateSequences() in chunks.
|
37
|
+
* NOTE: This function returns an error if it runs out of space to store
|
38
|
+
* sequences.
|
39
|
+
*/
|
40
|
+
size_t ZSTD_ldm_generateSequences(
|
41
|
+
ldmState_t* ldms, rawSeqStore_t* sequences,
|
42
|
+
ldmParams_t const* params, void const* src, size_t srcSize);
|
43
|
+
|
44
|
+
/**
|
45
|
+
* ZSTD_ldm_blockCompress():
|
46
|
+
*
|
47
|
+
* Compresses a block using the predefined sequences, along with a secondary
|
48
|
+
* block compressor. The literals section of every sequence is passed to the
|
49
|
+
* secondary block compressor, and those sequences are interspersed with the
|
50
|
+
* predefined sequences. Returns the length of the last literals.
|
51
|
+
* Updates `rawSeqStore.pos` to indicate how many sequences have been consumed.
|
52
|
+
* `rawSeqStore.seq` may also be updated to split the last sequence between two
|
53
|
+
* blocks.
|
54
|
+
* @return The length of the last literals.
|
55
|
+
*
|
56
|
+
* NOTE: The source must be at most the maximum block size, but the predefined
|
57
|
+
* sequences can be any size, and may be longer than the block. In the case that
|
58
|
+
* they are longer than the block, the last sequences may need to be split into
|
59
|
+
* two. We handle that case correctly, and update `rawSeqStore` appropriately.
|
60
|
+
* NOTE: This function does not return any errors.
|
61
|
+
*/
|
62
|
+
size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
|
63
|
+
ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
|
64
|
+
void const* src, size_t srcSize);
|
65
|
+
|
66
|
+
/**
|
67
|
+
* ZSTD_ldm_skipSequences():
|
68
|
+
*
|
69
|
+
* Skip past `srcSize` bytes worth of sequences in `rawSeqStore`.
|
70
|
+
* Avoids emitting matches less than `minMatch` bytes.
|
71
|
+
* Must be called for data with is not passed to ZSTD_ldm_blockCompress().
|
72
|
+
*/
|
73
|
+
void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize,
|
74
|
+
U32 const minMatch);
|
75
|
+
|
76
|
+
|
77
|
+
/** ZSTD_ldm_getTableSize() :
|
78
|
+
* Estimate the space needed for long distance matching tables or 0 if LDM is
|
79
|
+
* disabled.
|
80
|
+
*/
|
81
|
+
size_t ZSTD_ldm_getTableSize(ldmParams_t params);
|
82
|
+
|
83
|
+
/** ZSTD_ldm_getSeqSpace() :
|
84
|
+
* Return an upper bound on the number of sequences that can be produced by
|
85
|
+
* the long distance matcher, or 0 if LDM is disabled.
|
86
|
+
*/
|
87
|
+
size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize);
|
88
|
+
|
89
|
+
/** ZSTD_ldm_adjustParameters() :
|
90
|
+
* If the params->hashRateLog is not set, set it to its default value based on
|
91
|
+
* windowLog and params->hashLog.
|
92
|
+
*
|
93
|
+
* Ensures that params->bucketSizeLog is <= params->hashLog (setting it to
|
94
|
+
* params->hashLog if it is not).
|
95
|
+
*
|
96
|
+
* Ensures that the minMatchLength >= targetLength during optimal parsing.
|
97
|
+
*/
|
98
|
+
void ZSTD_ldm_adjustParameters(ldmParams_t* params,
|
99
|
+
ZSTD_compressionParameters const* cParams);
|
100
|
+
|
101
|
+
#if defined (__cplusplus)
|
102
|
+
}
|
103
|
+
#endif
|
104
|
+
|
105
|
+
#endif /* ZSTD_FAST_H */
|