ob64 0.1.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/main.yml +20 -4
  3. data/.gitignore +2 -0
  4. data/CHANGELOG.md +18 -1
  5. data/{LICENSE.txt → LICENSE} +1 -1
  6. data/README.md +34 -2
  7. data/benchmark.rb +42 -3
  8. data/ext/ob64/ob64_ext.c +5 -3
  9. data/lib/ob64/core_ext.rb +2 -0
  10. data/lib/ob64/version.rb +1 -1
  11. data/lib/ob64.rb +52 -0
  12. data/ob64.gemspec +12 -6
  13. data/vendor/libbase64/.gitignore +12 -0
  14. data/vendor/libbase64/.travis.yml +71 -0
  15. data/vendor/libbase64/CMakeLists.txt +264 -0
  16. data/vendor/libbase64/LICENSE +28 -0
  17. data/vendor/libbase64/Makefile +93 -0
  18. data/vendor/libbase64/README.md +474 -0
  19. data/vendor/libbase64/base64-benchmarks.png +0 -0
  20. data/vendor/libbase64/bin/base64.c +132 -0
  21. data/vendor/libbase64/cmake/Modules/TargetArch.cmake +29 -0
  22. data/vendor/libbase64/cmake/Modules/TargetSIMDInstructionSet.cmake +34 -0
  23. data/vendor/libbase64/cmake/base64-config.cmake.in +5 -0
  24. data/vendor/libbase64/cmake/config.h.in +25 -0
  25. data/vendor/libbase64/cmake/test-arch.c +35 -0
  26. data/vendor/libbase64/include/libbase64.h +145 -0
  27. data/vendor/libbase64/lib/arch/avx/codec.c +42 -0
  28. data/vendor/libbase64/lib/arch/avx2/codec.c +42 -0
  29. data/vendor/libbase64/lib/arch/avx2/dec_loop.c +110 -0
  30. data/vendor/libbase64/lib/arch/avx2/dec_reshuffle.c +34 -0
  31. data/vendor/libbase64/lib/arch/avx2/enc_loop.c +89 -0
  32. data/vendor/libbase64/lib/arch/avx2/enc_reshuffle.c +83 -0
  33. data/vendor/libbase64/lib/arch/avx2/enc_translate.c +30 -0
  34. data/vendor/libbase64/lib/arch/generic/32/dec_loop.c +86 -0
  35. data/vendor/libbase64/lib/arch/generic/32/enc_loop.c +73 -0
  36. data/vendor/libbase64/lib/arch/generic/64/enc_loop.c +77 -0
  37. data/vendor/libbase64/lib/arch/generic/codec.c +39 -0
  38. data/vendor/libbase64/lib/arch/generic/dec_head.c +37 -0
  39. data/vendor/libbase64/lib/arch/generic/dec_tail.c +91 -0
  40. data/vendor/libbase64/lib/arch/generic/enc_head.c +24 -0
  41. data/vendor/libbase64/lib/arch/generic/enc_tail.c +34 -0
  42. data/vendor/libbase64/lib/arch/neon32/codec.c +72 -0
  43. data/vendor/libbase64/lib/arch/neon32/dec_loop.c +106 -0
  44. data/vendor/libbase64/lib/arch/neon32/enc_loop.c +58 -0
  45. data/vendor/libbase64/lib/arch/neon32/enc_reshuffle.c +54 -0
  46. data/vendor/libbase64/lib/arch/neon32/enc_translate.c +57 -0
  47. data/vendor/libbase64/lib/arch/neon64/codec.c +70 -0
  48. data/vendor/libbase64/lib/arch/neon64/dec_loop.c +129 -0
  49. data/vendor/libbase64/lib/arch/neon64/enc_loop.c +66 -0
  50. data/vendor/libbase64/lib/arch/neon64/enc_reshuffle.c +54 -0
  51. data/vendor/libbase64/lib/arch/sse41/codec.c +42 -0
  52. data/vendor/libbase64/lib/arch/sse42/codec.c +42 -0
  53. data/vendor/libbase64/lib/arch/ssse3/codec.c +42 -0
  54. data/vendor/libbase64/lib/arch/ssse3/dec_loop.c +173 -0
  55. data/vendor/libbase64/lib/arch/ssse3/dec_reshuffle.c +33 -0
  56. data/vendor/libbase64/lib/arch/ssse3/enc_loop.c +67 -0
  57. data/vendor/libbase64/lib/arch/ssse3/enc_reshuffle.c +48 -0
  58. data/vendor/libbase64/lib/arch/ssse3/enc_translate.c +33 -0
  59. data/vendor/libbase64/lib/codec_choose.c +281 -0
  60. data/vendor/libbase64/lib/codecs.h +65 -0
  61. data/vendor/libbase64/lib/env.h +67 -0
  62. data/vendor/libbase64/lib/exports.txt +7 -0
  63. data/vendor/libbase64/lib/lib.c +164 -0
  64. data/vendor/libbase64/lib/lib_openmp.c +149 -0
  65. data/vendor/libbase64/lib/tables/.gitignore +1 -0
  66. data/vendor/libbase64/lib/tables/Makefile +17 -0
  67. data/vendor/libbase64/lib/tables/table_dec_32bit.h +393 -0
  68. data/vendor/libbase64/lib/tables/table_enc_12bit.h +1031 -0
  69. data/vendor/libbase64/lib/tables/table_enc_12bit.py +45 -0
  70. data/vendor/libbase64/lib/tables/table_generator.c +184 -0
  71. data/vendor/libbase64/lib/tables/tables.c +40 -0
  72. data/vendor/libbase64/lib/tables/tables.h +23 -0
  73. metadata +67 -6
  74. data/.byebug_history +0 -72
  75. 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.1.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-25 00:00:00.000000000 Z
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.txt
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.1.4
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