extlz4 0.2.4.2 → 0.3.2
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 +5 -5
- data/HISTORY.ja.md +25 -0
- data/README.md +49 -41
- data/bin/extlz4 +1 -1
- data/contrib/lz4/INSTALL +1 -0
- data/contrib/lz4/Makefile.inc +87 -0
- data/contrib/lz4/NEWS +89 -0
- data/contrib/lz4/README.md +42 -36
- data/contrib/lz4/build/README.md +55 -0
- data/contrib/lz4/build/VS2010/datagen/datagen.vcxproj +169 -0
- data/contrib/lz4/build/VS2010/frametest/frametest.vcxproj +176 -0
- data/contrib/lz4/build/VS2010/fullbench-dll/fullbench-dll.vcxproj +180 -0
- data/contrib/lz4/build/VS2010/fullbench/fullbench.vcxproj +176 -0
- data/contrib/lz4/build/VS2010/fuzzer/fuzzer.vcxproj +173 -0
- data/contrib/lz4/build/VS2010/liblz4-dll/liblz4-dll.rc +51 -0
- data/contrib/lz4/build/VS2010/liblz4-dll/liblz4-dll.vcxproj +179 -0
- data/contrib/lz4/build/VS2010/liblz4/liblz4.vcxproj +175 -0
- data/contrib/lz4/build/VS2010/lz4.sln +98 -0
- data/contrib/lz4/build/VS2010/lz4/lz4.rc +51 -0
- data/contrib/lz4/build/VS2010/lz4/lz4.vcxproj +189 -0
- data/contrib/lz4/build/VS2017/datagen/datagen.vcxproj +173 -0
- data/contrib/lz4/build/VS2017/frametest/frametest.vcxproj +180 -0
- data/contrib/lz4/build/VS2017/fullbench-dll/fullbench-dll.vcxproj +184 -0
- data/contrib/lz4/build/VS2017/fullbench/fullbench.vcxproj +180 -0
- data/contrib/lz4/build/VS2017/fuzzer/fuzzer.vcxproj +177 -0
- data/contrib/lz4/build/VS2017/liblz4-dll/liblz4-dll.rc +51 -0
- data/contrib/lz4/build/VS2017/liblz4-dll/liblz4-dll.vcxproj +183 -0
- data/contrib/lz4/build/VS2017/liblz4/liblz4.vcxproj +179 -0
- data/contrib/lz4/build/VS2017/lz4.sln +103 -0
- data/contrib/lz4/build/VS2017/lz4/lz4.rc +51 -0
- data/contrib/lz4/build/VS2017/lz4/lz4.vcxproj +164 -0
- data/contrib/lz4/build/cmake/CMakeLists.txt +235 -0
- data/contrib/lz4/lib/README.md +98 -34
- data/contrib/lz4/lib/liblz4-dll.rc.in +35 -0
- data/contrib/lz4/lib/lz4.c +1698 -681
- data/contrib/lz4/lib/lz4.h +546 -235
- data/contrib/lz4/lib/lz4frame.c +608 -378
- data/contrib/lz4/lib/lz4frame.h +315 -83
- data/contrib/lz4/lib/lz4frame_static.h +4 -100
- data/contrib/lz4/lib/lz4hc.c +1090 -282
- data/contrib/lz4/lib/lz4hc.h +276 -141
- data/contrib/lz4/lib/xxhash.c +371 -235
- data/contrib/lz4/lib/xxhash.h +128 -93
- data/contrib/lz4/ossfuzz/Makefile +78 -0
- data/contrib/lz4/ossfuzz/compress_frame_fuzzer.c +48 -0
- data/contrib/lz4/ossfuzz/compress_fuzzer.c +58 -0
- data/contrib/lz4/ossfuzz/compress_hc_fuzzer.c +64 -0
- data/contrib/lz4/ossfuzz/decompress_frame_fuzzer.c +75 -0
- data/contrib/lz4/ossfuzz/decompress_fuzzer.c +62 -0
- data/contrib/lz4/ossfuzz/fuzz.h +48 -0
- data/contrib/lz4/ossfuzz/fuzz_data_producer.c +77 -0
- data/contrib/lz4/ossfuzz/fuzz_data_producer.h +36 -0
- data/contrib/lz4/ossfuzz/fuzz_helpers.h +94 -0
- data/contrib/lz4/ossfuzz/lz4_helpers.c +51 -0
- data/contrib/lz4/ossfuzz/lz4_helpers.h +13 -0
- data/contrib/lz4/ossfuzz/ossfuzz.sh +23 -0
- data/contrib/lz4/ossfuzz/round_trip_frame_fuzzer.c +43 -0
- data/contrib/lz4/ossfuzz/round_trip_fuzzer.c +57 -0
- data/contrib/lz4/ossfuzz/round_trip_hc_fuzzer.c +44 -0
- data/contrib/lz4/ossfuzz/round_trip_stream_fuzzer.c +302 -0
- data/contrib/lz4/ossfuzz/standaloneengine.c +74 -0
- data/contrib/lz4/ossfuzz/travisoss.sh +26 -0
- data/contrib/lz4/tmp +0 -0
- data/contrib/lz4/tmpsparse +0 -0
- data/ext/blockapi.c +5 -5
- data/ext/extlz4.c +2 -0
- data/ext/extlz4.h +5 -0
- data/ext/frameapi.c +1 -1
- data/ext/hashargs.c +2 -2
- data/ext/hashargs.h +1 -1
- data/ext/lz4_amalgam.c +0 -23
- data/gemstub.rb +5 -16
- data/lib/extlz4.rb +51 -3
- data/lib/extlz4/oldstream.rb +1 -1
- data/test/common.rb +2 -2
- metadata +73 -16
- data/contrib/lz4/circle.yml +0 -39
- data/contrib/lz4/lib/lz4opt.h +0 -366
- data/lib/extlz4/version.rb +0 -3
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#include <stdint.h>
|
|
2
|
+
#include <stdio.h>
|
|
3
|
+
#include <stdlib.h>
|
|
4
|
+
|
|
5
|
+
#include "fuzz.h"
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Main procedure for standalone fuzzing engine.
|
|
9
|
+
*
|
|
10
|
+
* Reads filenames from the argument array. For each filename, read the file
|
|
11
|
+
* into memory and then call the fuzzing interface with the data.
|
|
12
|
+
*/
|
|
13
|
+
int main(int argc, char **argv)
|
|
14
|
+
{
|
|
15
|
+
int ii;
|
|
16
|
+
for(ii = 1; ii < argc; ii++)
|
|
17
|
+
{
|
|
18
|
+
FILE *infile;
|
|
19
|
+
printf("[%s] ", argv[ii]);
|
|
20
|
+
|
|
21
|
+
/* Try and open the file. */
|
|
22
|
+
infile = fopen(argv[ii], "rb");
|
|
23
|
+
if(infile)
|
|
24
|
+
{
|
|
25
|
+
uint8_t *buffer = NULL;
|
|
26
|
+
size_t buffer_len;
|
|
27
|
+
|
|
28
|
+
printf("Opened.. ");
|
|
29
|
+
|
|
30
|
+
/* Get the length of the file. */
|
|
31
|
+
fseek(infile, 0L, SEEK_END);
|
|
32
|
+
buffer_len = ftell(infile);
|
|
33
|
+
|
|
34
|
+
/* Reset the file indicator to the beginning of the file. */
|
|
35
|
+
fseek(infile, 0L, SEEK_SET);
|
|
36
|
+
|
|
37
|
+
/* Allocate a buffer for the file contents. */
|
|
38
|
+
buffer = (uint8_t *)calloc(buffer_len, sizeof(uint8_t));
|
|
39
|
+
if(buffer)
|
|
40
|
+
{
|
|
41
|
+
/* Read all the text from the file into the buffer. */
|
|
42
|
+
fread(buffer, sizeof(uint8_t), buffer_len, infile);
|
|
43
|
+
printf("Read %zu bytes, fuzzing.. ", buffer_len);
|
|
44
|
+
|
|
45
|
+
/* Call the fuzzer with the data. */
|
|
46
|
+
LLVMFuzzerTestOneInput(buffer, buffer_len);
|
|
47
|
+
|
|
48
|
+
printf("complete !!");
|
|
49
|
+
|
|
50
|
+
/* Free the buffer as it's no longer needed. */
|
|
51
|
+
free(buffer);
|
|
52
|
+
buffer = NULL;
|
|
53
|
+
}
|
|
54
|
+
else
|
|
55
|
+
{
|
|
56
|
+
fprintf(stderr,
|
|
57
|
+
"[%s] Failed to allocate %zu bytes \n",
|
|
58
|
+
argv[ii],
|
|
59
|
+
buffer_len);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Close the file as it's no longer needed. */
|
|
63
|
+
fclose(infile);
|
|
64
|
+
infile = NULL;
|
|
65
|
+
}
|
|
66
|
+
else
|
|
67
|
+
{
|
|
68
|
+
/* Failed to open the file. Maybe wrong name or wrong permissions? */
|
|
69
|
+
fprintf(stderr, "[%s] Open failed. \n", argv[ii]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
printf("\n");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -ex
|
|
4
|
+
|
|
5
|
+
# Clone the oss-fuzz repository
|
|
6
|
+
git clone https://github.com/google/oss-fuzz.git /tmp/ossfuzz
|
|
7
|
+
|
|
8
|
+
if [[ ! -d /tmp/ossfuzz/projects/lz4 ]]
|
|
9
|
+
then
|
|
10
|
+
echo "Could not find the lz4 project in ossfuzz"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Modify the oss-fuzz Dockerfile so that we're checking out the current branch on travis.
|
|
15
|
+
if [ "x${TRAVIS_PULL_REQUEST}" = "xfalse" ]
|
|
16
|
+
then
|
|
17
|
+
sed -i "s@https://github.com/lz4/lz4.git@-b ${TRAVIS_BRANCH} https://github.com/lz4/lz4.git@" /tmp/ossfuzz/projects/lz4/Dockerfile
|
|
18
|
+
else
|
|
19
|
+
sed -i "s@https://github.com/lz4/lz4.git@-b ${TRAVIS_PULL_REQUEST_BRANCH} https://github.com/${TRAVIS_PULL_REQUEST_SLUG}.git@" /tmp/ossfuzz/projects/lz4/Dockerfile
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
# Try and build the fuzzers
|
|
23
|
+
pushd /tmp/ossfuzz
|
|
24
|
+
python infra/helper.py build_image --pull lz4
|
|
25
|
+
python infra/helper.py build_fuzzers lz4
|
|
26
|
+
popd
|
data/contrib/lz4/tmp
ADDED
|
Binary file
|
|
Binary file
|
data/ext/blockapi.c
CHANGED
|
@@ -32,7 +32,7 @@ aux_LZ4_compress_fast_continue_nogvl(va_list *vp)
|
|
|
32
32
|
static int
|
|
33
33
|
aux_LZ4_compress_fast_continue(void *context, const char *src, char *dest, int srcsize, int destsize, int acceleration)
|
|
34
34
|
{
|
|
35
|
-
return (int)aux_thread_call_without_gvl(
|
|
35
|
+
return (int)(intptr_t)aux_thread_call_without_gvl(
|
|
36
36
|
aux_LZ4_compress_fast_continue_nogvl, NULL,
|
|
37
37
|
context, src, dest, srcsize, destsize, acceleration);
|
|
38
38
|
}
|
|
@@ -54,7 +54,7 @@ static int
|
|
|
54
54
|
aux_LZ4_compressHC_continue(void *context, const char *src, char *dest, int srcsize, int destsize, int acceleration__ignored__)
|
|
55
55
|
{
|
|
56
56
|
(void)acceleration__ignored__;
|
|
57
|
-
return (int)aux_thread_call_without_gvl(
|
|
57
|
+
return (int)(intptr_t)aux_thread_call_without_gvl(
|
|
58
58
|
aux_LZ4_compressHC_continue_nogvl, NULL,
|
|
59
59
|
context, src, dest, srcsize, destsize);
|
|
60
60
|
}
|
|
@@ -76,7 +76,7 @@ aux_LZ4_decompress_safe_continue_nogvl(va_list *vp)
|
|
|
76
76
|
static int
|
|
77
77
|
aux_LZ4_decompress_safe_continue(LZ4_streamDecode_t *context, const char *src, char *dest, int srcsize, int maxsize)
|
|
78
78
|
{
|
|
79
|
-
return (int)aux_thread_call_without_gvl(
|
|
79
|
+
return (int)(intptr_t)aux_thread_call_without_gvl(
|
|
80
80
|
aux_LZ4_decompress_safe_continue_nogvl, NULL,
|
|
81
81
|
context, src, dest, srcsize, maxsize);
|
|
82
82
|
}
|
|
@@ -504,7 +504,7 @@ blkenc_update(int argc, VALUE argv[], VALUE enc)
|
|
|
504
504
|
int s = p->traits->update(p->context, srcp, RSTRING_PTR(dest), srcsize, maxsize, p->level);
|
|
505
505
|
if (s <= 0) {
|
|
506
506
|
rb_raise(extlz4_eError,
|
|
507
|
-
"destsize too small (given destsize is %
|
|
507
|
+
"destsize too small (given destsize is %"PRIuSIZE")",
|
|
508
508
|
rb_str_capacity(dest));
|
|
509
509
|
}
|
|
510
510
|
p->prefixsize = p->traits->savedict(p->context, p->prefix, sizeof(p->prefix));
|
|
@@ -684,7 +684,7 @@ blkenc_s_encode(int argc, VALUE argv[], VALUE lz4)
|
|
|
684
684
|
size_t srcsize = RSTRING_LEN(src);
|
|
685
685
|
if (srcsize > LZ4_MAX_INPUT_SIZE) {
|
|
686
686
|
rb_raise(extlz4_eError,
|
|
687
|
-
"source size is too big for lz4 encode (given %
|
|
687
|
+
"source size is too big for lz4 encode (given %"PRIuSIZE", but max %"PRIuSIZE" bytes)",
|
|
688
688
|
srcsize, (size_t)LZ4_MAX_INPUT_SIZE);
|
|
689
689
|
}
|
|
690
690
|
aux_str_reserve(dest, maxsize);
|
data/ext/extlz4.c
CHANGED
data/ext/extlz4.h
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#include <stdarg.h>
|
|
7
7
|
#include <stdlib.h>
|
|
8
8
|
#include <errno.h>
|
|
9
|
+
#include <stdbool.h>
|
|
9
10
|
|
|
10
11
|
#ifndef RB_OBJ_FROZEN
|
|
11
12
|
# define RB_OBJ_FROZEN OBJ_FROZEN
|
|
@@ -17,6 +18,10 @@ extern VALUE extlz4_eError; /* class LZ4::Error < ::RuntimeError */
|
|
|
17
18
|
extern void extlz4_init_blockapi(void);
|
|
18
19
|
extern void extlz4_init_frameapi(void);
|
|
19
20
|
|
|
21
|
+
#ifndef RB_EXT_RACTOR_SAFE
|
|
22
|
+
# define RB_EXT_RACTOR_SAFE(FEATURE) ((void)(FEATURE))
|
|
23
|
+
#endif
|
|
24
|
+
|
|
20
25
|
#define AUX_FUNCALL(RECV, METHOD, ...) \
|
|
21
26
|
({ \
|
|
22
27
|
VALUE args__[] = { __VA_ARGS__ }; \
|
data/ext/frameapi.c
CHANGED
|
@@ -503,7 +503,7 @@ fdec_read_args(int argc, VALUE argv[], size_t *size, VALUE *buf)
|
|
|
503
503
|
*size = NUM2SIZET(argv[0]);
|
|
504
504
|
*buf = argv[1];
|
|
505
505
|
rb_check_type(*buf, RUBY_T_STRING);
|
|
506
|
-
|
|
506
|
+
aux_str_reserve(*buf, *size);
|
|
507
507
|
rb_str_set_len(*buf, 0);
|
|
508
508
|
break;
|
|
509
509
|
default:
|
data/ext/hashargs.c
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* To the extent possible under law, dearblue has waived all copyright
|
|
7
7
|
* and related or neighboring rights to this work.
|
|
8
8
|
*
|
|
9
|
-
* dearblue <dearblue@users.
|
|
9
|
+
* dearblue <dearblue@users.osdn.me>
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
#include "hashargs.h"
|
|
@@ -142,7 +142,7 @@ rbx_scanhash(VALUE hash, VALUE rest, struct rbx_scanhash_arg *args, struct rbx_s
|
|
|
142
142
|
hash = rbx_scanhash_to_hash(hash);
|
|
143
143
|
if (!NIL_P(hash) && !RHASH_EMPTY_P(hash)) {
|
|
144
144
|
struct rbx_scanhash_args argset = { args, end, rest };
|
|
145
|
-
rb_hash_foreach(hash, rbx_scanhash_foreach, (VALUE)&argset);
|
|
145
|
+
rb_hash_foreach(hash, (int (*)(VALUE, VALUE, VALUE))rbx_scanhash_foreach, (VALUE)&argset);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
rbx_scanhash_check_missingkeys(args, end);
|
data/ext/hashargs.h
CHANGED
data/ext/lz4_amalgam.c
CHANGED
|
@@ -3,29 +3,6 @@
|
|
|
3
3
|
#endif
|
|
4
4
|
|
|
5
5
|
#include "../contrib/lz4/lib/lz4.c"
|
|
6
|
-
|
|
7
|
-
#define LZ4_isLittleEndian amalg_LZ4_isLittleEndian
|
|
8
|
-
#define LZ4_read16 amalg_LZ4_read16
|
|
9
|
-
#define LZ4_read32 amalg_LZ4_read32
|
|
10
|
-
#define LZ4_read_ARCH amalg_LZ4_read_ARCH
|
|
11
|
-
#define LZ4_write16 amalg_LZ4_write16
|
|
12
|
-
#define LZ4_write32 amalg_LZ4_write32
|
|
13
|
-
#define LZ4_readLE16 amalg_LZ4_readLE16
|
|
14
|
-
#define LZ4_writeLE16 amalg_LZ4_writeLE16
|
|
15
|
-
#define LZ4_copy8 amalg_LZ4_copy8
|
|
16
|
-
#define LZ4_wildCopy amalg_LZ4_wildCopy
|
|
17
|
-
#define LZ4_minLength amalg_LZ4_minLength
|
|
18
|
-
#define LZ4_NbCommonBytes amalg_LZ4_NbCommonBytes
|
|
19
|
-
#define LZ4_count amalg_LZ4_count
|
|
20
|
-
#define limitedOutput amalg_limitedOutput
|
|
21
|
-
#define limitedOutput_directive amalg_limitedOutput_directive
|
|
22
|
-
#define unalign amalg_unalign
|
|
23
6
|
#include "../contrib/lz4/lib/lz4hc.c"
|
|
24
|
-
|
|
25
|
-
#undef ALLOCATOR
|
|
26
|
-
#undef KB
|
|
27
|
-
#undef MB
|
|
28
|
-
#undef GB
|
|
29
7
|
#include "../contrib/lz4/lib/lz4frame.c"
|
|
30
|
-
|
|
31
8
|
#include "../contrib/lz4/lib/xxhash.c"
|
data/gemstub.rb
CHANGED
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
unless File.read("README.md"
|
|
1
|
+
unless ver = File.read("README.md").scan(/^\s*[\*\-]\s*version:{1,2}\s*(.+)/i).flatten[-1]
|
|
2
2
|
raise "バージョン情報が README.md に見つかりません"
|
|
3
3
|
end
|
|
4
4
|
|
|
5
|
-
ver = $1
|
|
6
|
-
verfile = "lib/extlz4/version.rb"
|
|
7
|
-
LIB << verfile
|
|
8
|
-
|
|
9
|
-
file verfile => "README.md" do |*args|
|
|
10
|
-
File.binwrite args[0].name, <<-VERSION_FILE
|
|
11
|
-
module LZ4
|
|
12
|
-
VERSION = "#{ver}"
|
|
13
|
-
end
|
|
14
|
-
VERSION_FILE
|
|
15
|
-
end
|
|
16
|
-
|
|
17
5
|
|
|
18
6
|
unmatch = %r(\bcontrib/lz4/(?:Makefile|appveyor\.yml|contrib|doc|examples|lib/Makefile|lib/dll|programs|tests|visual)(?:$|/))
|
|
19
7
|
|
|
@@ -29,12 +17,13 @@ GEMSTUB = Gem::Specification.new do |s|
|
|
|
29
17
|
s.version = ver
|
|
30
18
|
s.summary = "ruby bindings for LZ4"
|
|
31
19
|
s.description = <<EOS
|
|
32
|
-
ruby bindings for LZ4 <https://github.com/lz4/lz4>.
|
|
20
|
+
unofficial ruby bindings for LZ4 <https://github.com/lz4/lz4>.
|
|
33
21
|
EOS
|
|
34
22
|
s.homepage = "https://github.com/dearblue/ruby-extlz4"
|
|
35
23
|
s.license = "BSD-2-Clause"
|
|
36
24
|
s.author = "dearblue"
|
|
37
|
-
s.email = "dearblue@users.
|
|
25
|
+
s.email = "dearblue@users.osdn.me"
|
|
38
26
|
|
|
39
|
-
s.add_development_dependency "rake"
|
|
27
|
+
s.add_development_dependency "rake", "~> 0"
|
|
28
|
+
s.add_development_dependency "test-unit", "~> 3.3"
|
|
40
29
|
end
|
data/lib/extlz4.rb
CHANGED
|
@@ -4,9 +4,11 @@ require "stringio"
|
|
|
4
4
|
|
|
5
5
|
ver = RUBY_VERSION[/\d+\.\d+/]
|
|
6
6
|
soname = File.basename(__FILE__, ".rb") << ".so"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
begin
|
|
8
|
+
require_relative File.join(ver, soname)
|
|
9
|
+
rescue LoadError
|
|
10
|
+
require File.join(ver, soname)
|
|
11
|
+
end
|
|
10
12
|
|
|
11
13
|
#
|
|
12
14
|
# LZ4 data and streaming data processor.
|
|
@@ -322,6 +324,52 @@ module LZ4
|
|
|
322
324
|
alias block_stream_decompress block_stream_decode
|
|
323
325
|
alias block_stream_uncompress block_stream_decode
|
|
324
326
|
end
|
|
327
|
+
|
|
328
|
+
refine String do
|
|
329
|
+
#
|
|
330
|
+
# call-seq:
|
|
331
|
+
# to_lz4frame(level = 1, opts = {}) -> lz4 frame'd data
|
|
332
|
+
#
|
|
333
|
+
def to_lz4frame(*args)
|
|
334
|
+
LZ4.encode self, *args
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
#
|
|
338
|
+
# call-seq:
|
|
339
|
+
# unlz4frame -> decoded data
|
|
340
|
+
#
|
|
341
|
+
def unlz4frame(*args, &block)
|
|
342
|
+
LZ4.decode self, *args, &block
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
def to_lz4block(*args)
|
|
346
|
+
LZ4.block_encode(self, *args)
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
def unlz4block(*args)
|
|
350
|
+
LZ4.block_decode(self, *args)
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
refine Object do
|
|
355
|
+
#
|
|
356
|
+
# call-seq:
|
|
357
|
+
# to_lz4frame(level = 1, opts = {}) -> stream encoder
|
|
358
|
+
# to_lz4frame(level = 1, opts = {}) { |stream_encoder| ... } -> yield_status
|
|
359
|
+
#
|
|
360
|
+
def to_lz4frame(*args, &block)
|
|
361
|
+
LZ4.encode self, *args, &block
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
#
|
|
365
|
+
# call-seq:
|
|
366
|
+
# -> decoder
|
|
367
|
+
# { |decoder| ... } -> yield_status
|
|
368
|
+
#
|
|
369
|
+
def unlz4frame(*args, &block)
|
|
370
|
+
LZ4.decode self, *args, &block
|
|
371
|
+
end
|
|
372
|
+
end
|
|
325
373
|
end
|
|
326
374
|
|
|
327
375
|
require_relative "extlz4/compat"
|
data/lib/extlz4/oldstream.rb
CHANGED
data/test/common.rb
CHANGED
|
@@ -14,5 +14,5 @@ SAMPLES = {
|
|
|
14
14
|
"random (big size)" => OpenSSL::Random.random_bytes(BIGSIZE),
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
SAMPLES["freebsd ports index"] = File.read("/usr/ports/INDEX-
|
|
18
|
-
SAMPLES["freebsd kernel"] = File.read("/boot/kernel/kernel", mode: "rb") rescue nil # if on FreeBSD
|
|
17
|
+
(SAMPLES["freebsd ports index"] = File.read("/usr/ports/INDEX-12", mode: "rb")) rescue nil # if on FreeBSD
|
|
18
|
+
(SAMPLES["freebsd kernel"] = File.read("/boot/kernel/kernel", mode: "rb")) rescue nil # if on FreeBSD
|
metadata
CHANGED
|
@@ -1,33 +1,47 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: extlz4
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- dearblue
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-04-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '0'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
|
-
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: test-unit
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '3.3'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '3.3'
|
|
41
|
+
description: 'unofficial ruby bindings for LZ4 <https://github.com/lz4/lz4>.
|
|
28
42
|
|
|
29
|
-
'
|
|
30
|
-
email: dearblue@users.
|
|
43
|
+
'
|
|
44
|
+
email: dearblue@users.osdn.me
|
|
31
45
|
executables:
|
|
32
46
|
- extlz4
|
|
33
47
|
extensions:
|
|
@@ -38,6 +52,7 @@ extra_rdoc_files:
|
|
|
38
52
|
- README.md
|
|
39
53
|
- contrib/lz4/LICENSE
|
|
40
54
|
- contrib/lz4/README.md
|
|
55
|
+
- contrib/lz4/build/README.md
|
|
41
56
|
- contrib/lz4/lib/LICENSE
|
|
42
57
|
- contrib/lz4/lib/README.md
|
|
43
58
|
- ext/blockapi.c
|
|
@@ -51,7 +66,6 @@ extra_rdoc_files:
|
|
|
51
66
|
- lib/extlz4/compat.rb
|
|
52
67
|
- lib/extlz4/fix-0.1bug.rb
|
|
53
68
|
- lib/extlz4/oldstream.rb
|
|
54
|
-
- lib/extlz4/version.rb
|
|
55
69
|
files:
|
|
56
70
|
- HISTORY.ja.md
|
|
57
71
|
- LICENSE
|
|
@@ -60,11 +74,36 @@ files:
|
|
|
60
74
|
- bin/extlz4
|
|
61
75
|
- contrib/lz4/INSTALL
|
|
62
76
|
- contrib/lz4/LICENSE
|
|
77
|
+
- contrib/lz4/Makefile.inc
|
|
63
78
|
- contrib/lz4/NEWS
|
|
64
79
|
- contrib/lz4/README.md
|
|
65
|
-
- contrib/lz4/
|
|
80
|
+
- contrib/lz4/build/README.md
|
|
81
|
+
- contrib/lz4/build/VS2010/datagen/datagen.vcxproj
|
|
82
|
+
- contrib/lz4/build/VS2010/frametest/frametest.vcxproj
|
|
83
|
+
- contrib/lz4/build/VS2010/fullbench-dll/fullbench-dll.vcxproj
|
|
84
|
+
- contrib/lz4/build/VS2010/fullbench/fullbench.vcxproj
|
|
85
|
+
- contrib/lz4/build/VS2010/fuzzer/fuzzer.vcxproj
|
|
86
|
+
- contrib/lz4/build/VS2010/liblz4-dll/liblz4-dll.rc
|
|
87
|
+
- contrib/lz4/build/VS2010/liblz4-dll/liblz4-dll.vcxproj
|
|
88
|
+
- contrib/lz4/build/VS2010/liblz4/liblz4.vcxproj
|
|
89
|
+
- contrib/lz4/build/VS2010/lz4.sln
|
|
90
|
+
- contrib/lz4/build/VS2010/lz4/lz4.rc
|
|
91
|
+
- contrib/lz4/build/VS2010/lz4/lz4.vcxproj
|
|
92
|
+
- contrib/lz4/build/VS2017/datagen/datagen.vcxproj
|
|
93
|
+
- contrib/lz4/build/VS2017/frametest/frametest.vcxproj
|
|
94
|
+
- contrib/lz4/build/VS2017/fullbench-dll/fullbench-dll.vcxproj
|
|
95
|
+
- contrib/lz4/build/VS2017/fullbench/fullbench.vcxproj
|
|
96
|
+
- contrib/lz4/build/VS2017/fuzzer/fuzzer.vcxproj
|
|
97
|
+
- contrib/lz4/build/VS2017/liblz4-dll/liblz4-dll.rc
|
|
98
|
+
- contrib/lz4/build/VS2017/liblz4-dll/liblz4-dll.vcxproj
|
|
99
|
+
- contrib/lz4/build/VS2017/liblz4/liblz4.vcxproj
|
|
100
|
+
- contrib/lz4/build/VS2017/lz4.sln
|
|
101
|
+
- contrib/lz4/build/VS2017/lz4/lz4.rc
|
|
102
|
+
- contrib/lz4/build/VS2017/lz4/lz4.vcxproj
|
|
103
|
+
- contrib/lz4/build/cmake/CMakeLists.txt
|
|
66
104
|
- contrib/lz4/lib/LICENSE
|
|
67
105
|
- contrib/lz4/lib/README.md
|
|
106
|
+
- contrib/lz4/lib/liblz4-dll.rc.in
|
|
68
107
|
- contrib/lz4/lib/liblz4.pc.in
|
|
69
108
|
- contrib/lz4/lib/lz4.c
|
|
70
109
|
- contrib/lz4/lib/lz4.h
|
|
@@ -73,9 +112,29 @@ files:
|
|
|
73
112
|
- contrib/lz4/lib/lz4frame_static.h
|
|
74
113
|
- contrib/lz4/lib/lz4hc.c
|
|
75
114
|
- contrib/lz4/lib/lz4hc.h
|
|
76
|
-
- contrib/lz4/lib/lz4opt.h
|
|
77
115
|
- contrib/lz4/lib/xxhash.c
|
|
78
116
|
- contrib/lz4/lib/xxhash.h
|
|
117
|
+
- contrib/lz4/ossfuzz/Makefile
|
|
118
|
+
- contrib/lz4/ossfuzz/compress_frame_fuzzer.c
|
|
119
|
+
- contrib/lz4/ossfuzz/compress_fuzzer.c
|
|
120
|
+
- contrib/lz4/ossfuzz/compress_hc_fuzzer.c
|
|
121
|
+
- contrib/lz4/ossfuzz/decompress_frame_fuzzer.c
|
|
122
|
+
- contrib/lz4/ossfuzz/decompress_fuzzer.c
|
|
123
|
+
- contrib/lz4/ossfuzz/fuzz.h
|
|
124
|
+
- contrib/lz4/ossfuzz/fuzz_data_producer.c
|
|
125
|
+
- contrib/lz4/ossfuzz/fuzz_data_producer.h
|
|
126
|
+
- contrib/lz4/ossfuzz/fuzz_helpers.h
|
|
127
|
+
- contrib/lz4/ossfuzz/lz4_helpers.c
|
|
128
|
+
- contrib/lz4/ossfuzz/lz4_helpers.h
|
|
129
|
+
- contrib/lz4/ossfuzz/ossfuzz.sh
|
|
130
|
+
- contrib/lz4/ossfuzz/round_trip_frame_fuzzer.c
|
|
131
|
+
- contrib/lz4/ossfuzz/round_trip_fuzzer.c
|
|
132
|
+
- contrib/lz4/ossfuzz/round_trip_hc_fuzzer.c
|
|
133
|
+
- contrib/lz4/ossfuzz/round_trip_stream_fuzzer.c
|
|
134
|
+
- contrib/lz4/ossfuzz/standaloneengine.c
|
|
135
|
+
- contrib/lz4/ossfuzz/travisoss.sh
|
|
136
|
+
- contrib/lz4/tmp
|
|
137
|
+
- contrib/lz4/tmpsparse
|
|
79
138
|
- examples/frameapi.rb
|
|
80
139
|
- ext/blockapi.c
|
|
81
140
|
- ext/depend
|
|
@@ -91,7 +150,6 @@ files:
|
|
|
91
150
|
- lib/extlz4/compat.rb
|
|
92
151
|
- lib/extlz4/fix-0.1bug.rb
|
|
93
152
|
- lib/extlz4/oldstream.rb
|
|
94
|
-
- lib/extlz4/version.rb
|
|
95
153
|
- test/common.rb
|
|
96
154
|
- test/test_blockapi.rb
|
|
97
155
|
- test/test_frameapi.rb
|
|
@@ -99,7 +157,7 @@ homepage: https://github.com/dearblue/ruby-extlz4
|
|
|
99
157
|
licenses:
|
|
100
158
|
- BSD-2-Clause
|
|
101
159
|
metadata: {}
|
|
102
|
-
post_install_message:
|
|
160
|
+
post_install_message:
|
|
103
161
|
rdoc_options:
|
|
104
162
|
- "--charset"
|
|
105
163
|
- UTF-8
|
|
@@ -118,9 +176,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
118
176
|
- !ruby/object:Gem::Version
|
|
119
177
|
version: '0'
|
|
120
178
|
requirements: []
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
signing_key:
|
|
179
|
+
rubygems_version: 3.2.14
|
|
180
|
+
signing_key:
|
|
124
181
|
specification_version: 4
|
|
125
182
|
summary: ruby bindings for LZ4
|
|
126
183
|
test_files: []
|