zstdlib 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES.md +9 -0
  3. data/Gemfile +3 -0
  4. data/README.md +96 -0
  5. data/Rakefile +29 -0
  6. data/ext/zstdlib/extconf.rb +53 -0
  7. data/ext/zstdlib/ruby/zlib-2.2/zlib.c +4659 -0
  8. data/ext/zstdlib/ruby/zlib-2.3/zlib.c +4686 -0
  9. data/ext/zstdlib/ruby/zlib-2.4/zlib.c +4843 -0
  10. data/ext/zstdlib/ruby/zlib-2.5/zlib.c +4848 -0
  11. data/ext/zstdlib/ruby/zlib-2.6/zlib.c +4890 -0
  12. data/ext/zstdlib/zlib-1.2.11/adler32.c +186 -0
  13. data/ext/zstdlib/zlib-1.2.11/compress.c +86 -0
  14. data/ext/zstdlib/zlib-1.2.11/crc32.c +442 -0
  15. data/ext/zstdlib/zlib-1.2.11/crc32.h +441 -0
  16. data/ext/zstdlib/zlib-1.2.11/deflate.c +2163 -0
  17. data/ext/zstdlib/zlib-1.2.11/deflate.h +349 -0
  18. data/ext/zstdlib/zlib-1.2.11/gzclose.c +25 -0
  19. data/ext/zstdlib/zlib-1.2.11/gzguts.h +218 -0
  20. data/ext/zstdlib/zlib-1.2.11/gzlib.c +637 -0
  21. data/ext/zstdlib/zlib-1.2.11/gzread.c +654 -0
  22. data/ext/zstdlib/zlib-1.2.11/gzwrite.c +665 -0
  23. data/ext/zstdlib/zlib-1.2.11/infback.c +640 -0
  24. data/ext/zstdlib/zlib-1.2.11/inffast.c +323 -0
  25. data/ext/zstdlib/zlib-1.2.11/inffast.h +11 -0
  26. data/ext/zstdlib/zlib-1.2.11/inffixed.h +94 -0
  27. data/ext/zstdlib/zlib-1.2.11/inflate.c +1561 -0
  28. data/ext/zstdlib/zlib-1.2.11/inflate.h +125 -0
  29. data/ext/zstdlib/zlib-1.2.11/inftrees.c +304 -0
  30. data/ext/zstdlib/zlib-1.2.11/inftrees.h +62 -0
  31. data/ext/zstdlib/zlib-1.2.11/trees.c +1203 -0
  32. data/ext/zstdlib/zlib-1.2.11/trees.h +128 -0
  33. data/ext/zstdlib/zlib-1.2.11/uncompr.c +93 -0
  34. data/ext/zstdlib/zlib-1.2.11/zconf.h +534 -0
  35. data/ext/zstdlib/zlib-1.2.11/zlib.h +1912 -0
  36. data/ext/zstdlib/zlib-1.2.11/zutil.c +325 -0
  37. data/ext/zstdlib/zlib-1.2.11/zutil.h +271 -0
  38. data/ext/zstdlib/zlib.mk +14 -0
  39. data/ext/zstdlib/zlibwrapper/zlibwrapper.c +14 -0
  40. data/ext/zstdlib/zlibwrapper.mk +14 -0
  41. data/ext/zstdlib/zstd-1.3.8/lib/common/bitstream.h +455 -0
  42. data/ext/zstdlib/zstd-1.3.8/lib/common/compiler.h +140 -0
  43. data/ext/zstdlib/zstd-1.3.8/lib/common/cpu.h +215 -0
  44. data/ext/zstdlib/zstd-1.3.8/lib/common/debug.c +44 -0
  45. data/ext/zstdlib/zstd-1.3.8/lib/common/debug.h +134 -0
  46. data/ext/zstdlib/zstd-1.3.8/lib/common/entropy_common.c +236 -0
  47. data/ext/zstdlib/zstd-1.3.8/lib/common/error_private.c +54 -0
  48. data/ext/zstdlib/zstd-1.3.8/lib/common/error_private.h +76 -0
  49. data/ext/zstdlib/zstd-1.3.8/lib/common/fse.h +708 -0
  50. data/ext/zstdlib/zstd-1.3.8/lib/common/fse_decompress.c +309 -0
  51. data/ext/zstdlib/zstd-1.3.8/lib/common/huf.h +358 -0
  52. data/ext/zstdlib/zstd-1.3.8/lib/common/mem.h +380 -0
  53. data/ext/zstdlib/zstd-1.3.8/lib/common/pool.c +340 -0
  54. data/ext/zstdlib/zstd-1.3.8/lib/common/pool.h +84 -0
  55. data/ext/zstdlib/zstd-1.3.8/lib/common/threading.c +75 -0
  56. data/ext/zstdlib/zstd-1.3.8/lib/common/threading.h +123 -0
  57. data/ext/zstdlib/zstd-1.3.8/lib/common/xxhash.c +876 -0
  58. data/ext/zstdlib/zstd-1.3.8/lib/common/xxhash.h +305 -0
  59. data/ext/zstdlib/zstd-1.3.8/lib/common/zstd_common.c +83 -0
  60. data/ext/zstdlib/zstd-1.3.8/lib/common/zstd_errors.h +93 -0
  61. data/ext/zstdlib/zstd-1.3.8/lib/common/zstd_internal.h +266 -0
  62. data/ext/zstdlib/zstd-1.3.8/lib/compress/fse_compress.c +721 -0
  63. data/ext/zstdlib/zstd-1.3.8/lib/compress/hist.c +203 -0
  64. data/ext/zstdlib/zstd-1.3.8/lib/compress/hist.h +95 -0
  65. data/ext/zstdlib/zstd-1.3.8/lib/compress/huf_compress.c +798 -0
  66. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_compress.c +4290 -0
  67. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_compress_internal.h +860 -0
  68. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_double_fast.c +499 -0
  69. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_double_fast.h +38 -0
  70. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_fast.c +391 -0
  71. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_fast.h +37 -0
  72. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_lazy.c +1106 -0
  73. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_lazy.h +67 -0
  74. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_ldm.c +597 -0
  75. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_ldm.h +105 -0
  76. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_opt.c +1217 -0
  77. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstd_opt.h +56 -0
  78. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstdmt_compress.c +2107 -0
  79. data/ext/zstdlib/zstd-1.3.8/lib/compress/zstdmt_compress.h +174 -0
  80. data/ext/zstdlib/zstd-1.3.8/lib/decompress/huf_decompress.c +1232 -0
  81. data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_ddict.c +240 -0
  82. data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_ddict.h +44 -0
  83. data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress.c +1672 -0
  84. data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress_block.c +1307 -0
  85. data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress_block.h +59 -0
  86. data/ext/zstdlib/zstd-1.3.8/lib/decompress/zstd_decompress_internal.h +168 -0
  87. data/ext/zstdlib/zstd-1.3.8/lib/zstd.h +1766 -0
  88. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzclose.c +28 -0
  89. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzcompatibility.h +68 -0
  90. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzguts.h +227 -0
  91. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzlib.c +640 -0
  92. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzread.c +670 -0
  93. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/gzwrite.c +671 -0
  94. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/zstd_zlibwrapper.c +1105 -0
  95. data/ext/zstdlib/zstd-1.3.8/zlibWrapper/zstd_zlibwrapper.h +88 -0
  96. data/ext/zstdlib/zstd.mk +14 -0
  97. data/lib/zstdlib.rb +6 -0
  98. data/test/zstdlib_test.rb +21 -0
  99. metadata +198 -0
@@ -0,0 +1,28 @@
1
+ /* gzclose.c contains minimal changes required to be compiled with zlibWrapper:
2
+ * - gz_statep was converted to union to work with -Wstrict-aliasing=1 */
3
+
4
+ /* gzclose.c -- zlib gzclose() function
5
+ * Copyright (C) 2004, 2010 Mark Adler
6
+ * For conditions of distribution and use, see http://www.zlib.net/zlib_license.html
7
+ */
8
+
9
+ #include "gzguts.h"
10
+
11
+ /* gzclose() is in a separate file so that it is linked in only if it is used.
12
+ That way the other gzclose functions can be used instead to avoid linking in
13
+ unneeded compression or decompression routines. */
14
+ int ZEXPORT gzclose(file)
15
+ gzFile file;
16
+ {
17
+ #ifndef NO_GZCOMPRESS
18
+ gz_statep state;
19
+
20
+ if (file == NULL)
21
+ return Z_STREAM_ERROR;
22
+ state = (gz_statep)file;
23
+
24
+ return state.state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
25
+ #else
26
+ return gzclose_r(file);
27
+ #endif
28
+ }
@@ -0,0 +1,68 @@
1
+ /*
2
+ * Copyright (c) 2016-present, Przemyslaw Skibinski, 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
+ * You may select, at your option, one of the above-listed licenses.
9
+ */
10
+
11
+
12
+
13
+ #if ZLIB_VERNUM <= 0x1240
14
+ ZEXTERN int ZEXPORT gzclose_r OF((gzFile file));
15
+ ZEXTERN int ZEXPORT gzclose_w OF((gzFile file));
16
+ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
17
+ ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
18
+
19
+ #if !defined(_WIN32) && defined(Z_LARGE64)
20
+ # define z_off64_t off64_t
21
+ #else
22
+ # if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
23
+ # define z_off64_t __int64
24
+ # else
25
+ # define z_off64_t z_off_t
26
+ # endif
27
+ #endif
28
+ #endif
29
+
30
+
31
+ #if ZLIB_VERNUM <= 0x1250
32
+ struct gzFile_s {
33
+ unsigned have;
34
+ unsigned char *next;
35
+ z_off64_t pos;
36
+ };
37
+ #endif
38
+
39
+
40
+ #if ZLIB_VERNUM <= 0x1270
41
+ #if defined(_WIN32) && !defined(Z_SOLO)
42
+ # include <stddef.h> /* for wchar_t */
43
+ ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path,
44
+ const char *mode));
45
+ #endif
46
+ #endif
47
+
48
+
49
+ #if ZLIB_VERNUM < 0x12B0
50
+ #ifdef Z_SOLO
51
+ typedef unsigned long z_size_t;
52
+ #else
53
+ # define z_longlong long long
54
+ # if defined(NO_SIZE_T)
55
+ typedef unsigned NO_SIZE_T z_size_t;
56
+ # elif defined(STDC)
57
+ # include <stddef.h>
58
+ typedef size_t z_size_t;
59
+ # else
60
+ typedef unsigned long z_size_t;
61
+ # endif
62
+ # undef z_longlong
63
+ #endif
64
+ ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems,
65
+ gzFile file));
66
+ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size,
67
+ z_size_t nitems, gzFile file));
68
+ #endif
@@ -0,0 +1,227 @@
1
+ /* gzguts.h contains minimal changes required to be compiled with zlibWrapper:
2
+ * - #include "zlib.h" was changed to #include "zstd_zlibwrapper.h"
3
+ * - gz_statep was converted to union to work with -Wstrict-aliasing=1 */
4
+
5
+ /* gzguts.h -- zlib internal header definitions for gz* operations
6
+ * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
7
+ * For conditions of distribution and use, see http://www.zlib.net/zlib_license.html
8
+ */
9
+
10
+ #ifdef _LARGEFILE64_SOURCE
11
+ # ifndef _LARGEFILE_SOURCE
12
+ # define _LARGEFILE_SOURCE 1
13
+ # endif
14
+ # ifdef _FILE_OFFSET_BITS
15
+ # undef _FILE_OFFSET_BITS
16
+ # endif
17
+ #endif
18
+
19
+ #ifdef HAVE_HIDDEN
20
+ # define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
21
+ #else
22
+ # define ZLIB_INTERNAL
23
+ #endif
24
+
25
+ #include <stdio.h>
26
+ #include "zstd_zlibwrapper.h"
27
+ #include "gzcompatibility.h"
28
+ #ifdef STDC
29
+ # include <string.h>
30
+ # include <stdlib.h>
31
+ # include <limits.h>
32
+ #endif
33
+
34
+ #ifndef _POSIX_SOURCE
35
+ # define _POSIX_SOURCE
36
+ #endif
37
+ #include <fcntl.h>
38
+
39
+ #ifdef _WIN32
40
+ # include <stddef.h>
41
+ #endif
42
+
43
+ #if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)
44
+ # include <io.h>
45
+ #endif
46
+
47
+ #if defined(_WIN32)
48
+ # define WIDECHAR
49
+ #endif
50
+
51
+ #ifdef WINAPI_FAMILY
52
+ # define open _open
53
+ # define read _read
54
+ # define write _write
55
+ # define close _close
56
+ #endif
57
+
58
+ #ifdef NO_DEFLATE /* for compatibility with old definition */
59
+ # define NO_GZCOMPRESS
60
+ #endif
61
+
62
+ #if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
63
+ # ifndef HAVE_VSNPRINTF
64
+ # define HAVE_VSNPRINTF
65
+ # endif
66
+ #endif
67
+
68
+ #if defined(__CYGWIN__)
69
+ # ifndef HAVE_VSNPRINTF
70
+ # define HAVE_VSNPRINTF
71
+ # endif
72
+ #endif
73
+
74
+ #if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410)
75
+ # ifndef HAVE_VSNPRINTF
76
+ # define HAVE_VSNPRINTF
77
+ # endif
78
+ #endif
79
+
80
+ #ifndef HAVE_VSNPRINTF
81
+ # ifdef MSDOS
82
+ /* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
83
+ but for now we just assume it doesn't. */
84
+ # define NO_vsnprintf
85
+ # endif
86
+ # ifdef __TURBOC__
87
+ # define NO_vsnprintf
88
+ # endif
89
+ # ifdef WIN32
90
+ /* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
91
+ # if !defined(vsnprintf) && !defined(NO_vsnprintf)
92
+ # if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
93
+ # define vsnprintf _vsnprintf
94
+ # endif
95
+ # endif
96
+ # endif
97
+ # ifdef __SASC
98
+ # define NO_vsnprintf
99
+ # endif
100
+ # ifdef VMS
101
+ # define NO_vsnprintf
102
+ # endif
103
+ # ifdef __OS400__
104
+ # define NO_vsnprintf
105
+ # endif
106
+ # ifdef __MVS__
107
+ # define NO_vsnprintf
108
+ # endif
109
+ #endif
110
+
111
+ /* unlike snprintf (which is required in C99), _snprintf does not guarantee
112
+ null termination of the result -- however this is only used in gzlib.c where
113
+ the result is assured to fit in the space provided */
114
+ #if defined(_MSC_VER) && _MSC_VER < 1900
115
+ # define snprintf _snprintf
116
+ #endif
117
+
118
+ #ifndef local
119
+ # define local static
120
+ #endif
121
+ /* since "static" is used to mean two completely different things in C, we
122
+ define "local" for the non-static meaning of "static", for readability
123
+ (compile with -Dlocal if your debugger can't find static symbols) */
124
+
125
+ /* gz* functions always use library allocation functions */
126
+ #ifndef STDC
127
+ extern voidp malloc OF((uInt size));
128
+ extern void free OF((voidpf ptr));
129
+ #endif
130
+
131
+ /* get errno and strerror definition */
132
+ #if defined UNDER_CE
133
+ # include <windows.h>
134
+ # define zstrerror() gz_strwinerror((DWORD)GetLastError())
135
+ #else
136
+ # ifndef NO_STRERROR
137
+ # include <errno.h>
138
+ # define zstrerror() strerror(errno)
139
+ # else
140
+ # define zstrerror() "stdio error (consult errno)"
141
+ # endif
142
+ #endif
143
+
144
+ /* provide prototypes for these when building zlib without LFS */
145
+ #if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0
146
+ ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
147
+ ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
148
+ ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
149
+ ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
150
+ #endif
151
+
152
+ /* default memLevel */
153
+ #if MAX_MEM_LEVEL >= 8
154
+ # define DEF_MEM_LEVEL 8
155
+ #else
156
+ # define DEF_MEM_LEVEL MAX_MEM_LEVEL
157
+ #endif
158
+
159
+ /* default i/o buffer size -- double this for output when reading (this and
160
+ twice this must be able to fit in an unsigned type) */
161
+ #define GZBUFSIZE 8192
162
+
163
+ /* gzip modes, also provide a little integrity check on the passed structure */
164
+ #define GZ_NONE 0
165
+ #define GZ_READ 7247
166
+ #define GZ_WRITE 31153
167
+ #define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */
168
+
169
+ /* values for gz_state how */
170
+ #define LOOK 0 /* look for a gzip header */
171
+ #define COPY 1 /* copy input directly */
172
+ #define GZIP 2 /* decompress a gzip stream */
173
+
174
+ /* internal gzip file state data structure */
175
+ typedef struct {
176
+ /* exposed contents for gzgetc() macro */
177
+ struct gzFile_s x; /* "x" for exposed */
178
+ /* x.have: number of bytes available at x.next */
179
+ /* x.next: next output data to deliver or write */
180
+ /* x.pos: current position in uncompressed data */
181
+ /* used for both reading and writing */
182
+ int mode; /* see gzip modes above */
183
+ int fd; /* file descriptor */
184
+ char *path; /* path or fd for error messages */
185
+ unsigned size; /* buffer size, zero if not allocated yet */
186
+ unsigned want; /* requested buffer size, default is GZBUFSIZE */
187
+ unsigned char *in; /* input buffer (double-sized when writing) */
188
+ unsigned char *out; /* output buffer (double-sized when reading) */
189
+ int direct; /* 0 if processing gzip, 1 if transparent */
190
+ /* just for reading */
191
+ int how; /* 0: get header, 1: copy, 2: decompress */
192
+ z_off64_t start; /* where the gzip data started, for rewinding */
193
+ int eof; /* true if end of input file reached */
194
+ int past; /* true if read requested past end */
195
+ /* just for writing */
196
+ int level; /* compression level */
197
+ int strategy; /* compression strategy */
198
+ /* seek request */
199
+ z_off64_t skip; /* amount to skip (already rewound if backwards) */
200
+ int seek; /* true if seek request pending */
201
+ /* error information */
202
+ int err; /* error code */
203
+ char *msg; /* error message */
204
+ /* zlib inflate or deflate stream */
205
+ z_stream strm; /* stream structure in-place (not a pointer) */
206
+ } gz_state;
207
+
208
+ typedef union {
209
+ gz_state FAR *state;
210
+ gzFile file;
211
+ } gz_statep;
212
+
213
+ /* shared functions */
214
+ void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
215
+ #if defined UNDER_CE
216
+ char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
217
+ #endif
218
+
219
+ /* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
220
+ value -- needed when comparing unsigned to z_off64_t, which is signed
221
+ (possible z_off64_t types off_t, off64_t, and long are all signed) */
222
+ #ifdef INT_MAX
223
+ # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
224
+ #else
225
+ unsigned ZLIB_INTERNAL gz_intmax OF((void));
226
+ # define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
227
+ #endif