ob64 0.1.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +20 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +18 -1
- data/{LICENSE.txt → LICENSE} +1 -1
- data/README.md +34 -2
- data/benchmark.rb +42 -3
- data/ext/ob64/ob64_ext.c +5 -3
- data/lib/ob64/core_ext.rb +2 -0
- data/lib/ob64/version.rb +1 -1
- data/lib/ob64.rb +52 -0
- data/ob64.gemspec +12 -6
- data/vendor/libbase64/.gitignore +12 -0
- data/vendor/libbase64/.travis.yml +71 -0
- data/vendor/libbase64/CMakeLists.txt +264 -0
- data/vendor/libbase64/LICENSE +28 -0
- data/vendor/libbase64/Makefile +93 -0
- data/vendor/libbase64/README.md +474 -0
- data/vendor/libbase64/base64-benchmarks.png +0 -0
- data/vendor/libbase64/bin/base64.c +132 -0
- data/vendor/libbase64/cmake/Modules/TargetArch.cmake +29 -0
- data/vendor/libbase64/cmake/Modules/TargetSIMDInstructionSet.cmake +34 -0
- data/vendor/libbase64/cmake/base64-config.cmake.in +5 -0
- data/vendor/libbase64/cmake/config.h.in +25 -0
- data/vendor/libbase64/cmake/test-arch.c +35 -0
- data/vendor/libbase64/include/libbase64.h +145 -0
- data/vendor/libbase64/lib/arch/avx/codec.c +42 -0
- data/vendor/libbase64/lib/arch/avx2/codec.c +42 -0
- data/vendor/libbase64/lib/arch/avx2/dec_loop.c +110 -0
- data/vendor/libbase64/lib/arch/avx2/dec_reshuffle.c +34 -0
- data/vendor/libbase64/lib/arch/avx2/enc_loop.c +89 -0
- data/vendor/libbase64/lib/arch/avx2/enc_reshuffle.c +83 -0
- data/vendor/libbase64/lib/arch/avx2/enc_translate.c +30 -0
- data/vendor/libbase64/lib/arch/generic/32/dec_loop.c +86 -0
- data/vendor/libbase64/lib/arch/generic/32/enc_loop.c +73 -0
- data/vendor/libbase64/lib/arch/generic/64/enc_loop.c +77 -0
- data/vendor/libbase64/lib/arch/generic/codec.c +39 -0
- data/vendor/libbase64/lib/arch/generic/dec_head.c +37 -0
- data/vendor/libbase64/lib/arch/generic/dec_tail.c +91 -0
- data/vendor/libbase64/lib/arch/generic/enc_head.c +24 -0
- data/vendor/libbase64/lib/arch/generic/enc_tail.c +34 -0
- data/vendor/libbase64/lib/arch/neon32/codec.c +72 -0
- data/vendor/libbase64/lib/arch/neon32/dec_loop.c +106 -0
- data/vendor/libbase64/lib/arch/neon32/enc_loop.c +58 -0
- data/vendor/libbase64/lib/arch/neon32/enc_reshuffle.c +54 -0
- data/vendor/libbase64/lib/arch/neon32/enc_translate.c +57 -0
- data/vendor/libbase64/lib/arch/neon64/codec.c +70 -0
- data/vendor/libbase64/lib/arch/neon64/dec_loop.c +129 -0
- data/vendor/libbase64/lib/arch/neon64/enc_loop.c +66 -0
- data/vendor/libbase64/lib/arch/neon64/enc_reshuffle.c +54 -0
- data/vendor/libbase64/lib/arch/sse41/codec.c +42 -0
- data/vendor/libbase64/lib/arch/sse42/codec.c +42 -0
- data/vendor/libbase64/lib/arch/ssse3/codec.c +42 -0
- data/vendor/libbase64/lib/arch/ssse3/dec_loop.c +173 -0
- data/vendor/libbase64/lib/arch/ssse3/dec_reshuffle.c +33 -0
- data/vendor/libbase64/lib/arch/ssse3/enc_loop.c +67 -0
- data/vendor/libbase64/lib/arch/ssse3/enc_reshuffle.c +48 -0
- data/vendor/libbase64/lib/arch/ssse3/enc_translate.c +33 -0
- data/vendor/libbase64/lib/codec_choose.c +281 -0
- data/vendor/libbase64/lib/codecs.h +65 -0
- data/vendor/libbase64/lib/env.h +67 -0
- data/vendor/libbase64/lib/exports.txt +7 -0
- data/vendor/libbase64/lib/lib.c +164 -0
- data/vendor/libbase64/lib/lib_openmp.c +149 -0
- data/vendor/libbase64/lib/tables/.gitignore +1 -0
- data/vendor/libbase64/lib/tables/Makefile +17 -0
- data/vendor/libbase64/lib/tables/table_dec_32bit.h +393 -0
- data/vendor/libbase64/lib/tables/table_enc_12bit.h +1031 -0
- data/vendor/libbase64/lib/tables/table_enc_12bit.py +45 -0
- data/vendor/libbase64/lib/tables/table_generator.c +184 -0
- data/vendor/libbase64/lib/tables/tables.c +40 -0
- data/vendor/libbase64/lib/tables/tables.h +23 -0
- metadata +67 -6
- data/.byebug_history +0 -72
- data/.envrc +0 -1
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/python3
|
2
|
+
|
3
|
+
def tr(x):
|
4
|
+
"""Translate a 6-bit value to the Base64 alphabet."""
|
5
|
+
s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' \
|
6
|
+
+ 'abcdefghijklmnopqrstuvwxyz' \
|
7
|
+
+ '0123456789' \
|
8
|
+
+ '+/'
|
9
|
+
return ord(s[x])
|
10
|
+
|
11
|
+
def table(fn):
|
12
|
+
"""Generate a 12-bit lookup table."""
|
13
|
+
ret = []
|
14
|
+
for n in range(0, 2**12):
|
15
|
+
pre = "\n\t" if n % 8 == 0 else " "
|
16
|
+
pre = "\t" if n == 0 else pre
|
17
|
+
ret.append("{}0x{:04X}U,".format(pre, fn(n)))
|
18
|
+
return "".join(ret)
|
19
|
+
|
20
|
+
def table_be():
|
21
|
+
"""Generate a 12-bit big-endian lookup table."""
|
22
|
+
return table(lambda n: (tr(n & 0x3F) << 0) | (tr(n >> 6) << 8))
|
23
|
+
|
24
|
+
def table_le():
|
25
|
+
"""Generate a 12-bit little-endian lookup table."""
|
26
|
+
return table(lambda n: (tr(n >> 6) << 0) | (tr(n & 0x3F) << 8))
|
27
|
+
|
28
|
+
def main():
|
29
|
+
"""Entry point."""
|
30
|
+
lines = [
|
31
|
+
"#include <stdint.h>",
|
32
|
+
"",
|
33
|
+
"const uint16_t base64_table_enc_12bit[] = {",
|
34
|
+
"#if BASE64_LITTLE_ENDIAN",
|
35
|
+
table_le(),
|
36
|
+
"#else",
|
37
|
+
table_be(),
|
38
|
+
"#endif",
|
39
|
+
"};"
|
40
|
+
]
|
41
|
+
for line in lines:
|
42
|
+
print(line)
|
43
|
+
|
44
|
+
if __name__ == "__main__":
|
45
|
+
main()
|
@@ -0,0 +1,184 @@
|
|
1
|
+
/**
|
2
|
+
*
|
3
|
+
* Copyright 2005, 2006 Nick Galbreath -- nickg [at] modp [dot] com
|
4
|
+
* Copyright 2017 Matthieu Darbois
|
5
|
+
* All rights reserved.
|
6
|
+
*
|
7
|
+
* http://modp.com/release/base64
|
8
|
+
*
|
9
|
+
* Redistribution and use in source and binary forms, with or without
|
10
|
+
* modification, are permitted provided that the following conditions are
|
11
|
+
* met:
|
12
|
+
*
|
13
|
+
* - Redistributions of source code must retain the above copyright notice,
|
14
|
+
* this list of conditions and the following disclaimer.
|
15
|
+
*
|
16
|
+
* - Redistributions in binary form must reproduce the above copyright
|
17
|
+
* notice, this list of conditions and the following disclaimer in the
|
18
|
+
* documentation and/or other materials provided with the distribution.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
21
|
+
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
22
|
+
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
23
|
+
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
26
|
+
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
27
|
+
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
28
|
+
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
29
|
+
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
30
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
/****************************/
|
35
|
+
|
36
|
+
#include <stdint.h>
|
37
|
+
#include <stdio.h>
|
38
|
+
#include <stdlib.h>
|
39
|
+
#include <string.h>
|
40
|
+
#include <inttypes.h>
|
41
|
+
|
42
|
+
static uint8_t b64chars[64] = {
|
43
|
+
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
|
44
|
+
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
|
45
|
+
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
|
46
|
+
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
47
|
+
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
|
48
|
+
};
|
49
|
+
|
50
|
+
static uint8_t padchar = '=';
|
51
|
+
|
52
|
+
static void printStart(void)
|
53
|
+
{
|
54
|
+
printf("#include <stdint.h>\n");
|
55
|
+
printf("#define CHAR62 '%c'\n", b64chars[62]);
|
56
|
+
printf("#define CHAR63 '%c'\n", b64chars[63]);
|
57
|
+
printf("#define CHARPAD '%c'\n", padchar);
|
58
|
+
}
|
59
|
+
|
60
|
+
static void clearDecodeTable(uint32_t* ary)
|
61
|
+
{
|
62
|
+
int i = 0;
|
63
|
+
for (i = 0; i < 256; ++i) {
|
64
|
+
ary[i] = 0xFFFFFFFF;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
/* dump uint32_t as hex digits */
|
69
|
+
void uint32_array_to_c_hex(const uint32_t* ary, size_t sz, const char* name)
|
70
|
+
{
|
71
|
+
size_t i = 0;
|
72
|
+
|
73
|
+
printf("const uint32_t %s[%d] = {\n", name, (int)sz);
|
74
|
+
for (;;) {
|
75
|
+
printf("0x%08" PRIx32, ary[i]);
|
76
|
+
++i;
|
77
|
+
if (i == sz)
|
78
|
+
break;
|
79
|
+
if (i % 6 == 0) {
|
80
|
+
printf(",\n");
|
81
|
+
} else {
|
82
|
+
printf(", ");
|
83
|
+
}
|
84
|
+
}
|
85
|
+
printf("\n};\n");
|
86
|
+
}
|
87
|
+
|
88
|
+
int main(int argc, char** argv)
|
89
|
+
{
|
90
|
+
uint32_t x;
|
91
|
+
uint32_t i = 0;
|
92
|
+
uint32_t ary[256];
|
93
|
+
|
94
|
+
/* over-ride standard alphabet */
|
95
|
+
if (argc == 2) {
|
96
|
+
uint8_t* replacements = (uint8_t*)argv[1];
|
97
|
+
if (strlen((char*)replacements) != 3) {
|
98
|
+
fprintf(stderr, "input must be a string of 3 characters '-', '.' or '_'\n");
|
99
|
+
exit(1);
|
100
|
+
}
|
101
|
+
fprintf(stderr, "fusing '%s' as replacements in base64 encoding\n", replacements);
|
102
|
+
b64chars[62] = replacements[0];
|
103
|
+
b64chars[63] = replacements[1];
|
104
|
+
padchar = replacements[2];
|
105
|
+
}
|
106
|
+
|
107
|
+
printStart();
|
108
|
+
|
109
|
+
printf("\n\n#if BASE64_LITTLE_ENDIAN\n");
|
110
|
+
|
111
|
+
printf("\n\n/* SPECIAL DECODE TABLES FOR LITTLE ENDIAN (INTEL) CPUS */\n\n");
|
112
|
+
|
113
|
+
clearDecodeTable(ary);
|
114
|
+
for (i = 0; i < 64; ++i) {
|
115
|
+
x = b64chars[i];
|
116
|
+
ary[x] = i << 2;
|
117
|
+
}
|
118
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d0");
|
119
|
+
printf("\n\n");
|
120
|
+
|
121
|
+
clearDecodeTable(ary);
|
122
|
+
for (i = 0; i < 64; ++i) {
|
123
|
+
x = b64chars[i];
|
124
|
+
ary[x] = ((i & 0x30) >> 4) | ((i & 0x0F) << 12);
|
125
|
+
}
|
126
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d1");
|
127
|
+
printf("\n\n");
|
128
|
+
|
129
|
+
clearDecodeTable(ary);
|
130
|
+
for (i = 0; i < 64; ++i) {
|
131
|
+
x = b64chars[i];
|
132
|
+
ary[x] = ((i & 0x03) << 22) | ((i & 0x3c) << 6);
|
133
|
+
}
|
134
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d2");
|
135
|
+
printf("\n\n");
|
136
|
+
|
137
|
+
clearDecodeTable(ary);
|
138
|
+
for (i = 0; i < 64; ++i) {
|
139
|
+
x = b64chars[i];
|
140
|
+
ary[x] = i << 16;
|
141
|
+
}
|
142
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d3");
|
143
|
+
printf("\n\n");
|
144
|
+
|
145
|
+
printf("#else\n");
|
146
|
+
|
147
|
+
printf("\n\n/* SPECIAL DECODE TABLES FOR BIG ENDIAN (IBM/MOTOROLA/SUN) CPUS */\n\n");
|
148
|
+
|
149
|
+
clearDecodeTable(ary);
|
150
|
+
for (i = 0; i < 64; ++i) {
|
151
|
+
x = b64chars[i];
|
152
|
+
ary[x] = i << 26;
|
153
|
+
}
|
154
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d0");
|
155
|
+
printf("\n\n");
|
156
|
+
|
157
|
+
clearDecodeTable(ary);
|
158
|
+
for (i = 0; i < 64; ++i) {
|
159
|
+
x = b64chars[i];
|
160
|
+
ary[x] = i << 20;
|
161
|
+
}
|
162
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d1");
|
163
|
+
printf("\n\n");
|
164
|
+
|
165
|
+
clearDecodeTable(ary);
|
166
|
+
for (i = 0; i < 64; ++i) {
|
167
|
+
x = b64chars[i];
|
168
|
+
ary[x] = i << 14;
|
169
|
+
}
|
170
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d2");
|
171
|
+
printf("\n\n");
|
172
|
+
|
173
|
+
clearDecodeTable(ary);
|
174
|
+
for (i = 0; i < 64; ++i) {
|
175
|
+
x = b64chars[i];
|
176
|
+
ary[x] = i << 8;
|
177
|
+
}
|
178
|
+
uint32_array_to_c_hex(ary, sizeof(ary) / sizeof(uint32_t), "base64_table_dec_32bit_d3");
|
179
|
+
printf("\n\n");
|
180
|
+
|
181
|
+
printf("#endif\n");
|
182
|
+
|
183
|
+
return 0;
|
184
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#include "tables.h"
|
2
|
+
|
3
|
+
const uint8_t
|
4
|
+
base64_table_enc_6bit[] =
|
5
|
+
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
6
|
+
"abcdefghijklmnopqrstuvwxyz"
|
7
|
+
"0123456789"
|
8
|
+
"+/";
|
9
|
+
|
10
|
+
// In the lookup table below, note that the value for '=' (character 61) is
|
11
|
+
// 254, not 255. This character is used for in-band signaling of the end of
|
12
|
+
// the datastream, and we will use that later. The characters A-Z, a-z, 0-9
|
13
|
+
// and + / are mapped to their "decoded" values. The other bytes all map to
|
14
|
+
// the value 255, which flags them as "invalid input".
|
15
|
+
|
16
|
+
const uint8_t
|
17
|
+
base64_table_dec_8bit[] =
|
18
|
+
{
|
19
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, // 0..15
|
20
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, // 16..31
|
21
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63, // 32..47
|
22
|
+
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 254, 255, 255, // 48..63
|
23
|
+
255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, // 64..79
|
24
|
+
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255, // 80..95
|
25
|
+
255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, // 96..111
|
26
|
+
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 255, 255, 255, 255, 255, // 112..127
|
27
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, // 128..143
|
28
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
29
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
30
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
31
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
32
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
33
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
34
|
+
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
35
|
+
};
|
36
|
+
|
37
|
+
#if BASE64_WORDSIZE >= 32
|
38
|
+
# include "table_dec_32bit.h"
|
39
|
+
# include "table_enc_12bit.h"
|
40
|
+
#endif
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#ifndef BASE64_TABLES_H
|
2
|
+
#define BASE64_TABLES_H
|
3
|
+
|
4
|
+
#include <stdint.h>
|
5
|
+
|
6
|
+
#include "../env.h"
|
7
|
+
|
8
|
+
// These tables are used by all codecs for fallback plain encoding/decoding:
|
9
|
+
extern const uint8_t base64_table_enc_6bit[];
|
10
|
+
extern const uint8_t base64_table_dec_8bit[];
|
11
|
+
|
12
|
+
// These tables are used for the 32-bit and 64-bit generic decoders:
|
13
|
+
#if BASE64_WORDSIZE >= 32
|
14
|
+
extern const uint32_t base64_table_dec_32bit_d0[];
|
15
|
+
extern const uint32_t base64_table_dec_32bit_d1[];
|
16
|
+
extern const uint32_t base64_table_dec_32bit_d2[];
|
17
|
+
extern const uint32_t base64_table_dec_32bit_d3[];
|
18
|
+
|
19
|
+
// This table is used by the 32 and 64-bit generic encoders:
|
20
|
+
extern const uint16_t base64_table_enc_12bit[];
|
21
|
+
#endif
|
22
|
+
|
23
|
+
#endif // BASE64_TABLES_H
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ob64
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- João Fernandes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A fast Base64 encoder and decoder that makes use of SIMD extensions.
|
14
14
|
email:
|
@@ -18,8 +18,6 @@ extensions:
|
|
18
18
|
- ext/ob64/extconf.rb
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
-
- ".byebug_history"
|
22
|
-
- ".envrc"
|
23
21
|
- ".github/workflows/main.yml"
|
24
22
|
- ".gitignore"
|
25
23
|
- ".gitmodules"
|
@@ -30,7 +28,7 @@ files:
|
|
30
28
|
- CODE_OF_CONDUCT.md
|
31
29
|
- Gemfile
|
32
30
|
- Guardfile
|
33
|
-
- LICENSE
|
31
|
+
- LICENSE
|
34
32
|
- README.md
|
35
33
|
- Rakefile
|
36
34
|
- benchmark.rb
|
@@ -48,11 +46,74 @@ files:
|
|
48
46
|
- lib/ob64/core_ext.rb
|
49
47
|
- lib/ob64/version.rb
|
50
48
|
- ob64.gemspec
|
49
|
+
- vendor/libbase64/.gitignore
|
50
|
+
- vendor/libbase64/.travis.yml
|
51
|
+
- vendor/libbase64/CMakeLists.txt
|
52
|
+
- vendor/libbase64/LICENSE
|
53
|
+
- vendor/libbase64/Makefile
|
54
|
+
- vendor/libbase64/README.md
|
55
|
+
- vendor/libbase64/base64-benchmarks.png
|
56
|
+
- vendor/libbase64/bin/base64.c
|
57
|
+
- vendor/libbase64/cmake/Modules/TargetArch.cmake
|
58
|
+
- vendor/libbase64/cmake/Modules/TargetSIMDInstructionSet.cmake
|
59
|
+
- vendor/libbase64/cmake/base64-config.cmake.in
|
60
|
+
- vendor/libbase64/cmake/config.h.in
|
61
|
+
- vendor/libbase64/cmake/test-arch.c
|
62
|
+
- vendor/libbase64/include/libbase64.h
|
63
|
+
- vendor/libbase64/lib/arch/avx/codec.c
|
64
|
+
- vendor/libbase64/lib/arch/avx2/codec.c
|
65
|
+
- vendor/libbase64/lib/arch/avx2/dec_loop.c
|
66
|
+
- vendor/libbase64/lib/arch/avx2/dec_reshuffle.c
|
67
|
+
- vendor/libbase64/lib/arch/avx2/enc_loop.c
|
68
|
+
- vendor/libbase64/lib/arch/avx2/enc_reshuffle.c
|
69
|
+
- vendor/libbase64/lib/arch/avx2/enc_translate.c
|
70
|
+
- vendor/libbase64/lib/arch/generic/32/dec_loop.c
|
71
|
+
- vendor/libbase64/lib/arch/generic/32/enc_loop.c
|
72
|
+
- vendor/libbase64/lib/arch/generic/64/enc_loop.c
|
73
|
+
- vendor/libbase64/lib/arch/generic/codec.c
|
74
|
+
- vendor/libbase64/lib/arch/generic/dec_head.c
|
75
|
+
- vendor/libbase64/lib/arch/generic/dec_tail.c
|
76
|
+
- vendor/libbase64/lib/arch/generic/enc_head.c
|
77
|
+
- vendor/libbase64/lib/arch/generic/enc_tail.c
|
78
|
+
- vendor/libbase64/lib/arch/neon32/codec.c
|
79
|
+
- vendor/libbase64/lib/arch/neon32/dec_loop.c
|
80
|
+
- vendor/libbase64/lib/arch/neon32/enc_loop.c
|
81
|
+
- vendor/libbase64/lib/arch/neon32/enc_reshuffle.c
|
82
|
+
- vendor/libbase64/lib/arch/neon32/enc_translate.c
|
83
|
+
- vendor/libbase64/lib/arch/neon64/codec.c
|
84
|
+
- vendor/libbase64/lib/arch/neon64/dec_loop.c
|
85
|
+
- vendor/libbase64/lib/arch/neon64/enc_loop.c
|
86
|
+
- vendor/libbase64/lib/arch/neon64/enc_reshuffle.c
|
87
|
+
- vendor/libbase64/lib/arch/sse41/codec.c
|
88
|
+
- vendor/libbase64/lib/arch/sse42/codec.c
|
89
|
+
- vendor/libbase64/lib/arch/ssse3/codec.c
|
90
|
+
- vendor/libbase64/lib/arch/ssse3/dec_loop.c
|
91
|
+
- vendor/libbase64/lib/arch/ssse3/dec_reshuffle.c
|
92
|
+
- vendor/libbase64/lib/arch/ssse3/enc_loop.c
|
93
|
+
- vendor/libbase64/lib/arch/ssse3/enc_reshuffle.c
|
94
|
+
- vendor/libbase64/lib/arch/ssse3/enc_translate.c
|
95
|
+
- vendor/libbase64/lib/codec_choose.c
|
96
|
+
- vendor/libbase64/lib/codecs.h
|
97
|
+
- vendor/libbase64/lib/env.h
|
98
|
+
- vendor/libbase64/lib/exports.txt
|
99
|
+
- vendor/libbase64/lib/lib.c
|
100
|
+
- vendor/libbase64/lib/lib_openmp.c
|
101
|
+
- vendor/libbase64/lib/tables/.gitignore
|
102
|
+
- vendor/libbase64/lib/tables/Makefile
|
103
|
+
- vendor/libbase64/lib/tables/table_dec_32bit.h
|
104
|
+
- vendor/libbase64/lib/tables/table_enc_12bit.h
|
105
|
+
- vendor/libbase64/lib/tables/table_enc_12bit.py
|
106
|
+
- vendor/libbase64/lib/tables/table_generator.c
|
107
|
+
- vendor/libbase64/lib/tables/tables.c
|
108
|
+
- vendor/libbase64/lib/tables/tables.h
|
51
109
|
homepage: https://github.com/jcmfernandes/ob64
|
52
110
|
licenses:
|
53
111
|
- MIT
|
54
112
|
metadata:
|
55
113
|
homepage_uri: https://github.com/jcmfernandes/ob64
|
114
|
+
changelog_uri: https://github.com/jcmfernandes/ob64/blob/master/CHANGELOG.md
|
115
|
+
documentation_uri: https://www.rubydoc.info/gems/ob64/0.5.0
|
116
|
+
source_code_uri: https://github.com/jcmfernandes/ob64/tree/v0.5.0
|
56
117
|
post_install_message:
|
57
118
|
rdoc_options: []
|
58
119
|
require_paths:
|
@@ -68,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
129
|
- !ruby/object:Gem::Version
|
69
130
|
version: '0'
|
70
131
|
requirements: []
|
71
|
-
rubygems_version: 3.
|
132
|
+
rubygems_version: 3.2.15
|
72
133
|
signing_key:
|
73
134
|
specification_version: 4
|
74
135
|
summary: A fast Base64 encoder and decoder.
|
data/.byebug_history
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
continue
|
2
|
-
aa == String.new(bb, encoding: 'ASCII-8BIT')
|
3
|
-
String.new(bb, encoding: 'ASCII').encoding
|
4
|
-
bb.encoding
|
5
|
-
aa.encoding
|
6
|
-
aa == String.new(bb, encoding: 'ASCII')
|
7
|
-
aa == String.new(bb, encoding: 'ASCII)
|
8
|
-
aa == String.new(bb)
|
9
|
-
continue
|
10
|
-
aa = String.new(bb)
|
11
|
-
bb.dup.force_encoding(Encoding::ASCII_8BIT) == aa
|
12
|
-
bb.dup.force_encoding(Encoding::ASCII_8BIT).encoding
|
13
|
-
bb.dup.force_encoding Encoding::ASCII_8BIT
|
14
|
-
bb.force_encoding Encoding::ASCII_8BIT
|
15
|
-
bb.encode Encoding::ASCII_8BIT
|
16
|
-
aa.encode Encoding::UTF_8
|
17
|
-
aa.encode Encoding::UTF-8
|
18
|
-
bb.encode Encoding::ASCII_8BIT
|
19
|
-
Encoding.constants
|
20
|
-
Encoding
|
21
|
-
bb.encoding
|
22
|
-
aa.encoding
|
23
|
-
bb.class
|
24
|
-
aa.class
|
25
|
-
aa.casecmp? 'ad'
|
26
|
-
aa.casecmp? bb
|
27
|
-
bb.bytes
|
28
|
-
aa.bytes
|
29
|
-
bb.bytesize
|
30
|
-
aa.bytesize
|
31
|
-
bb.size
|
32
|
-
aa.size
|
33
|
-
aa.match? bb
|
34
|
-
aa.match?
|
35
|
-
aa == bb
|
36
|
-
aa
|
37
|
-
a
|
38
|
-
bb
|
39
|
-
continue
|
40
|
-
b
|
41
|
-
a
|
42
|
-
exit
|
43
|
-
eixt
|
44
|
-
continue
|
45
|
-
disable-byebug
|
46
|
-
continue
|
47
|
-
missing_padding
|
48
|
-
n
|
49
|
-
continue
|
50
|
-
n
|
51
|
-
missing_padding
|
52
|
-
string
|
53
|
-
n
|
54
|
-
string
|
55
|
-
continue
|
56
|
-
string
|
57
|
-
continue
|
58
|
-
string
|
59
|
-
continue
|
60
|
-
exit
|
61
|
-
missing_padding
|
62
|
-
n
|
63
|
-
string
|
64
|
-
continue
|
65
|
-
__decode(string)
|
66
|
-
string
|
67
|
-
n
|
68
|
-
string
|
69
|
-
missing_padding
|
70
|
-
next
|
71
|
-
string
|
72
|
-
continue
|
data/.envrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
PATH_add bin
|