snappy 0.0.17 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +2 -0
  3. data/.github/workflows/main.yml +34 -0
  4. data/.github/workflows/publish.yml +34 -0
  5. data/.gitignore +2 -1
  6. data/.gitmodules +1 -1
  7. data/Dockerfile +13 -0
  8. data/Gemfile +4 -0
  9. data/README.md +29 -5
  10. data/Rakefile +32 -29
  11. data/ext/api.c +6 -1
  12. data/ext/extconf.rb +23 -16
  13. data/lib/snappy/hadoop/reader.rb +62 -0
  14. data/lib/snappy/hadoop/writer.rb +51 -0
  15. data/lib/snappy/hadoop.rb +22 -0
  16. data/lib/snappy/reader.rb +14 -10
  17. data/lib/snappy/shim.rb +1 -1
  18. data/lib/snappy/version.rb +1 -1
  19. data/lib/snappy.rb +5 -4
  20. data/snappy.gemspec +13 -13
  21. data/test/hadoop/snappy_hadoop_reader_test.rb +115 -0
  22. data/test/hadoop/snappy_hadoop_writer_test.rb +48 -0
  23. data/test/snappy_hadoop_test.rb +26 -0
  24. data/test/snappy_reader_test.rb +148 -0
  25. data/test/snappy_test.rb +95 -0
  26. data/test/snappy_writer_test.rb +55 -0
  27. data/test/test_helper.rb +7 -0
  28. data/test.sh +3 -0
  29. data/vendor/snappy/CMakeLists.txt +297 -0
  30. data/vendor/snappy/CONTRIBUTING.md +26 -0
  31. data/vendor/snappy/NEWS +40 -0
  32. data/vendor/snappy/{README → README.md} +27 -18
  33. data/vendor/snappy/cmake/SnappyConfig.cmake.in +33 -0
  34. data/vendor/snappy/cmake/config.h.in +62 -0
  35. data/vendor/snappy/docs/README.md +72 -0
  36. data/vendor/snappy/snappy-internal.h +22 -18
  37. data/vendor/snappy/snappy-stubs-internal.cc +1 -1
  38. data/vendor/snappy/snappy-stubs-internal.h +116 -38
  39. data/vendor/snappy/snappy-stubs-public.h.in +20 -46
  40. data/vendor/snappy/snappy-test.cc +26 -22
  41. data/vendor/snappy/snappy-test.h +24 -98
  42. data/vendor/snappy/snappy.cc +380 -183
  43. data/vendor/snappy/snappy.h +14 -10
  44. data/vendor/snappy/snappy_compress_fuzzer.cc +59 -0
  45. data/vendor/snappy/snappy_uncompress_fuzzer.cc +57 -0
  46. data/vendor/snappy/snappy_unittest.cc +236 -261
  47. metadata +37 -92
  48. data/.travis.yml +0 -26
  49. data/smoke.sh +0 -8
  50. data/test/test-snappy-reader.rb +0 -129
  51. data/test/test-snappy-writer.rb +0 -55
  52. data/test/test-snappy.rb +0 -58
  53. data/vendor/snappy/ChangeLog +0 -2468
  54. data/vendor/snappy/INSTALL +0 -370
  55. data/vendor/snappy/Makefile +0 -982
  56. data/vendor/snappy/Makefile.am +0 -26
  57. data/vendor/snappy/Makefile.in +0 -982
  58. data/vendor/snappy/aclocal.m4 +0 -9738
  59. data/vendor/snappy/autogen.sh +0 -12
  60. data/vendor/snappy/autom4te.cache/output.0 +0 -18856
  61. data/vendor/snappy/autom4te.cache/output.1 +0 -18852
  62. data/vendor/snappy/autom4te.cache/requests +0 -297
  63. data/vendor/snappy/autom4te.cache/traces.0 +0 -2689
  64. data/vendor/snappy/autom4te.cache/traces.1 +0 -714
  65. data/vendor/snappy/config.guess +0 -1530
  66. data/vendor/snappy/config.h +0 -135
  67. data/vendor/snappy/config.h.in +0 -134
  68. data/vendor/snappy/config.log +0 -1640
  69. data/vendor/snappy/config.status +0 -2318
  70. data/vendor/snappy/config.sub +0 -1773
  71. data/vendor/snappy/configure +0 -18852
  72. data/vendor/snappy/configure.ac +0 -134
  73. data/vendor/snappy/depcomp +0 -688
  74. data/vendor/snappy/install-sh +0 -527
  75. data/vendor/snappy/libtool +0 -10246
  76. data/vendor/snappy/ltmain.sh +0 -9661
  77. data/vendor/snappy/m4/gtest.m4 +0 -74
  78. data/vendor/snappy/m4/libtool.m4 +0 -8001
  79. data/vendor/snappy/m4/ltoptions.m4 +0 -384
  80. data/vendor/snappy/m4/ltsugar.m4 +0 -123
  81. data/vendor/snappy/m4/ltversion.m4 +0 -23
  82. data/vendor/snappy/m4/lt~obsolete.m4 +0 -98
  83. data/vendor/snappy/missing +0 -331
  84. data/vendor/snappy/snappy-stubs-public.h +0 -100
  85. data/vendor/snappy/snappy.pc +0 -10
  86. data/vendor/snappy/snappy.pc.in +0 -10
  87. data/vendor/snappy/stamp-h1 +0 -1
@@ -1,331 +0,0 @@
1
- #! /bin/sh
2
- # Common stub for a few missing GNU programs while installing.
3
-
4
- scriptversion=2012-01-06.13; # UTC
5
-
6
- # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
7
- # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
8
- # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
9
-
10
- # This program is free software; you can redistribute it and/or modify
11
- # it under the terms of the GNU General Public License as published by
12
- # the Free Software Foundation; either version 2, or (at your option)
13
- # any later version.
14
-
15
- # This program is distributed in the hope that it will be useful,
16
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
17
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
- # GNU General Public License for more details.
19
-
20
- # You should have received a copy of the GNU General Public License
21
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
22
-
23
- # As a special exception to the GNU General Public License, if you
24
- # distribute this file as part of a program that contains a
25
- # configuration script generated by Autoconf, you may include it under
26
- # the same distribution terms that you use for the rest of that program.
27
-
28
- if test $# -eq 0; then
29
- echo 1>&2 "Try \`$0 --help' for more information"
30
- exit 1
31
- fi
32
-
33
- run=:
34
- sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
35
- sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
36
-
37
- # In the cases where this matters, `missing' is being run in the
38
- # srcdir already.
39
- if test -f configure.ac; then
40
- configure_ac=configure.ac
41
- else
42
- configure_ac=configure.in
43
- fi
44
-
45
- msg="missing on your system"
46
-
47
- case $1 in
48
- --run)
49
- # Try to run requested program, and just exit if it succeeds.
50
- run=
51
- shift
52
- "$@" && exit 0
53
- # Exit code 63 means version mismatch. This often happens
54
- # when the user try to use an ancient version of a tool on
55
- # a file that requires a minimum version. In this case we
56
- # we should proceed has if the program had been absent, or
57
- # if --run hadn't been passed.
58
- if test $? = 63; then
59
- run=:
60
- msg="probably too old"
61
- fi
62
- ;;
63
-
64
- -h|--h|--he|--hel|--help)
65
- echo "\
66
- $0 [OPTION]... PROGRAM [ARGUMENT]...
67
-
68
- Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
69
- error status if there is no known handling for PROGRAM.
70
-
71
- Options:
72
- -h, --help display this help and exit
73
- -v, --version output version information and exit
74
- --run try to run the given command, and emulate it if it fails
75
-
76
- Supported PROGRAM values:
77
- aclocal touch file \`aclocal.m4'
78
- autoconf touch file \`configure'
79
- autoheader touch file \`config.h.in'
80
- autom4te touch the output file, or create a stub one
81
- automake touch all \`Makefile.in' files
82
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
83
- flex create \`lex.yy.c', if possible, from existing .c
84
- help2man touch the output file
85
- lex create \`lex.yy.c', if possible, from existing .c
86
- makeinfo touch the output file
87
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
88
-
89
- Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
90
- \`g' are ignored when checking the name.
91
-
92
- Send bug reports to <bug-automake@gnu.org>."
93
- exit $?
94
- ;;
95
-
96
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
97
- echo "missing $scriptversion (GNU Automake)"
98
- exit $?
99
- ;;
100
-
101
- -*)
102
- echo 1>&2 "$0: Unknown \`$1' option"
103
- echo 1>&2 "Try \`$0 --help' for more information"
104
- exit 1
105
- ;;
106
-
107
- esac
108
-
109
- # normalize program name to check for.
110
- program=`echo "$1" | sed '
111
- s/^gnu-//; t
112
- s/^gnu//; t
113
- s/^g//; t'`
114
-
115
- # Now exit if we have it, but it failed. Also exit now if we
116
- # don't have it and --version was passed (most likely to detect
117
- # the program). This is about non-GNU programs, so use $1 not
118
- # $program.
119
- case $1 in
120
- lex*|yacc*)
121
- # Not GNU programs, they don't have --version.
122
- ;;
123
-
124
- *)
125
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
126
- # We have it, but it failed.
127
- exit 1
128
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
129
- # Could not run --version or --help. This is probably someone
130
- # running `$TOOL --version' or `$TOOL --help' to check whether
131
- # $TOOL exists and not knowing $TOOL uses missing.
132
- exit 1
133
- fi
134
- ;;
135
- esac
136
-
137
- # If it does not exist, or fails to run (possibly an outdated version),
138
- # try to emulate it.
139
- case $program in
140
- aclocal*)
141
- echo 1>&2 "\
142
- WARNING: \`$1' is $msg. You should only need it if
143
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
144
- to install the \`Automake' and \`Perl' packages. Grab them from
145
- any GNU archive site."
146
- touch aclocal.m4
147
- ;;
148
-
149
- autoconf*)
150
- echo 1>&2 "\
151
- WARNING: \`$1' is $msg. You should only need it if
152
- you modified \`${configure_ac}'. You might want to install the
153
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
154
- archive site."
155
- touch configure
156
- ;;
157
-
158
- autoheader*)
159
- echo 1>&2 "\
160
- WARNING: \`$1' is $msg. You should only need it if
161
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
162
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
163
- from any GNU archive site."
164
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
165
- test -z "$files" && files="config.h"
166
- touch_files=
167
- for f in $files; do
168
- case $f in
169
- *:*) touch_files="$touch_files "`echo "$f" |
170
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
171
- *) touch_files="$touch_files $f.in";;
172
- esac
173
- done
174
- touch $touch_files
175
- ;;
176
-
177
- automake*)
178
- echo 1>&2 "\
179
- WARNING: \`$1' is $msg. You should only need it if
180
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
181
- You might want to install the \`Automake' and \`Perl' packages.
182
- Grab them from any GNU archive site."
183
- find . -type f -name Makefile.am -print |
184
- sed 's/\.am$/.in/' |
185
- while read f; do touch "$f"; done
186
- ;;
187
-
188
- autom4te*)
189
- echo 1>&2 "\
190
- WARNING: \`$1' is needed, but is $msg.
191
- You might have modified some files without having the
192
- proper tools for further handling them.
193
- You can get \`$1' as part of \`Autoconf' from any GNU
194
- archive site."
195
-
196
- file=`echo "$*" | sed -n "$sed_output"`
197
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
198
- if test -f "$file"; then
199
- touch $file
200
- else
201
- test -z "$file" || exec >$file
202
- echo "#! /bin/sh"
203
- echo "# Created by GNU Automake missing as a replacement of"
204
- echo "# $ $@"
205
- echo "exit 0"
206
- chmod +x $file
207
- exit 1
208
- fi
209
- ;;
210
-
211
- bison*|yacc*)
212
- echo 1>&2 "\
213
- WARNING: \`$1' $msg. You should only need it if
214
- you modified a \`.y' file. You may need the \`Bison' package
215
- in order for those modifications to take effect. You can get
216
- \`Bison' from any GNU archive site."
217
- rm -f y.tab.c y.tab.h
218
- if test $# -ne 1; then
219
- eval LASTARG=\${$#}
220
- case $LASTARG in
221
- *.y)
222
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
223
- if test -f "$SRCFILE"; then
224
- cp "$SRCFILE" y.tab.c
225
- fi
226
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
227
- if test -f "$SRCFILE"; then
228
- cp "$SRCFILE" y.tab.h
229
- fi
230
- ;;
231
- esac
232
- fi
233
- if test ! -f y.tab.h; then
234
- echo >y.tab.h
235
- fi
236
- if test ! -f y.tab.c; then
237
- echo 'main() { return 0; }' >y.tab.c
238
- fi
239
- ;;
240
-
241
- lex*|flex*)
242
- echo 1>&2 "\
243
- WARNING: \`$1' is $msg. You should only need it if
244
- you modified a \`.l' file. You may need the \`Flex' package
245
- in order for those modifications to take effect. You can get
246
- \`Flex' from any GNU archive site."
247
- rm -f lex.yy.c
248
- if test $# -ne 1; then
249
- eval LASTARG=\${$#}
250
- case $LASTARG in
251
- *.l)
252
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
253
- if test -f "$SRCFILE"; then
254
- cp "$SRCFILE" lex.yy.c
255
- fi
256
- ;;
257
- esac
258
- fi
259
- if test ! -f lex.yy.c; then
260
- echo 'main() { return 0; }' >lex.yy.c
261
- fi
262
- ;;
263
-
264
- help2man*)
265
- echo 1>&2 "\
266
- WARNING: \`$1' is $msg. You should only need it if
267
- you modified a dependency of a manual page. You may need the
268
- \`Help2man' package in order for those modifications to take
269
- effect. You can get \`Help2man' from any GNU archive site."
270
-
271
- file=`echo "$*" | sed -n "$sed_output"`
272
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
273
- if test -f "$file"; then
274
- touch $file
275
- else
276
- test -z "$file" || exec >$file
277
- echo ".ab help2man is required to generate this page"
278
- exit $?
279
- fi
280
- ;;
281
-
282
- makeinfo*)
283
- echo 1>&2 "\
284
- WARNING: \`$1' is $msg. You should only need it if
285
- you modified a \`.texi' or \`.texinfo' file, or any other file
286
- indirectly affecting the aspect of the manual. The spurious
287
- call might also be the consequence of using a buggy \`make' (AIX,
288
- DU, IRIX). You might want to install the \`Texinfo' package or
289
- the \`GNU make' package. Grab either from any GNU archive site."
290
- # The file to touch is that specified with -o ...
291
- file=`echo "$*" | sed -n "$sed_output"`
292
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
293
- if test -z "$file"; then
294
- # ... or it is the one specified with @setfilename ...
295
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
296
- file=`sed -n '
297
- /^@setfilename/{
298
- s/.* \([^ ]*\) *$/\1/
299
- p
300
- q
301
- }' $infile`
302
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
303
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
304
- fi
305
- # If the file does not exist, the user really needs makeinfo;
306
- # let's fail without touching anything.
307
- test -f $file || exit 1
308
- touch $file
309
- ;;
310
-
311
- *)
312
- echo 1>&2 "\
313
- WARNING: \`$1' is needed, and is $msg.
314
- You might have modified some files without having the
315
- proper tools for further handling them. Check the \`README' file,
316
- it often tells you about the needed prerequisites for installing
317
- this package. You may also peek at any GNU archive site, in case
318
- some other package would contain this missing \`$1' program."
319
- exit 1
320
- ;;
321
- esac
322
-
323
- exit 0
324
-
325
- # Local variables:
326
- # eval: (add-hook 'write-file-hooks 'time-stamp)
327
- # time-stamp-start: "scriptversion="
328
- # time-stamp-format: "%:y-%02m-%02d.%02H"
329
- # time-stamp-time-zone: "UTC"
330
- # time-stamp-end: "; # UTC"
331
- # End:
@@ -1,100 +0,0 @@
1
- // Copyright 2011 Google Inc. All Rights Reserved.
2
- // Author: sesse@google.com (Steinar H. Gunderson)
3
- //
4
- // Redistribution and use in source and binary forms, with or without
5
- // modification, are permitted provided that the following conditions are
6
- // met:
7
- //
8
- // * Redistributions of source code must retain the above copyright
9
- // notice, this list of conditions and the following disclaimer.
10
- // * Redistributions in binary form must reproduce the above
11
- // copyright notice, this list of conditions and the following disclaimer
12
- // in the documentation and/or other materials provided with the
13
- // distribution.
14
- // * Neither the name of Google Inc. nor the names of its
15
- // contributors may be used to endorse or promote products derived from
16
- // this software without specific prior written permission.
17
- //
18
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
- //
30
- // Various type stubs for the open-source version of Snappy.
31
- //
32
- // This file cannot include config.h, as it is included from snappy.h,
33
- // which is a public header. Instead, snappy-stubs-public.h is generated by
34
- // from snappy-stubs-public.h.in at configure time.
35
-
36
- #ifndef THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
37
- #define THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
38
-
39
- #if 1
40
- #include <stdint.h>
41
- #endif
42
-
43
- #if 1
44
- #include <stddef.h>
45
- #endif
46
-
47
- #if 0
48
- #include <sys/uio.h>
49
- #endif
50
-
51
- #define SNAPPY_MAJOR 1
52
- #define SNAPPY_MINOR 1
53
- #define SNAPPY_PATCHLEVEL 4
54
- #define SNAPPY_VERSION \
55
- ((SNAPPY_MAJOR << 16) | (SNAPPY_MINOR << 8) | SNAPPY_PATCHLEVEL)
56
-
57
- #include <string>
58
-
59
- namespace snappy {
60
-
61
- #if 1
62
- typedef int8_t int8;
63
- typedef uint8_t uint8;
64
- typedef int16_t int16;
65
- typedef uint16_t uint16;
66
- typedef int32_t int32;
67
- typedef uint32_t uint32;
68
- typedef int64_t int64;
69
- typedef uint64_t uint64;
70
- #else
71
- typedef signed char int8;
72
- typedef unsigned char uint8;
73
- typedef short int16;
74
- typedef unsigned short uint16;
75
- typedef int int32;
76
- typedef unsigned int uint32;
77
- typedef long long int64;
78
- typedef unsigned long long uint64;
79
- #endif
80
-
81
- typedef std::string string;
82
-
83
- #ifndef DISALLOW_COPY_AND_ASSIGN
84
- #define DISALLOW_COPY_AND_ASSIGN(TypeName) \
85
- TypeName(const TypeName&); \
86
- void operator=(const TypeName&)
87
- #endif
88
-
89
- #if !0
90
- // Windows does not have an iovec type, yet the concept is universally useful.
91
- // It is simple to define it ourselves, so we put it inside our own namespace.
92
- struct iovec {
93
- void* iov_base;
94
- size_t iov_len;
95
- };
96
- #endif
97
-
98
- } // namespace snappy
99
-
100
- #endif // THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_PUBLIC_H_
@@ -1,10 +0,0 @@
1
- prefix=/usr/local
2
- exec_prefix=${prefix}
3
- libdir=${exec_prefix}/lib
4
- includedir=${prefix}/include
5
-
6
- Name: snappy
7
- Description: A fast compression/decompression library
8
- Version: 1.1.4
9
- Libs: -L${libdir} -lsnappy
10
- Cflags: -I${includedir}
@@ -1,10 +0,0 @@
1
- prefix=@prefix@
2
- exec_prefix=@exec_prefix@
3
- libdir=@libdir@
4
- includedir=@includedir@
5
-
6
- Name: @PACKAGE@
7
- Description: A fast compression/decompression library
8
- Version: @PACKAGE_VERSION@
9
- Libs: -L${libdir} -l@PACKAGE@
10
- Cflags: -I${includedir}
@@ -1 +0,0 @@
1
- timestamp for config.h