ob64 0.5.0 → 0.6.0
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 +4 -4
- data/.github/dependabot.yml +9 -0
- data/.github/workflows/main.yml +77 -16
- data/.standard.yml +1 -2
- data/CHANGELOG.md +14 -1
- data/README.md +57 -19
- data/benchmark.rb +60 -95
- data/ext/ob64/extconf.rb +0 -42
- data/ext/ob64/ob64.h +3 -1
- data/ext/ob64/ob64_ext.c +80 -23
- data/ext/ob64/ob64_pack.c +228 -0
- data/ext/ob64/pack_base64.c +5182 -0
- data/ext/ob64/pack_base64.h +33 -0
- data/ext/ob64/pack_generic.h +151 -0
- data/ext/ob64/pack_simd.h +22 -0
- data/ext/ob64/pack_uuencode.c +1741 -0
- data/ext/ob64/pack_uuencode.h +18 -0
- data/lib/ob64/core_ext.rb +2 -25
- data/lib/ob64/version.rb +1 -1
- data/lib/ob64.rb +149 -70
- data/ob64.gemspec +3 -5
- metadata +17 -73
- data/.gitmodules +0 -3
- data/ext/ob64/libbase64.h +0 -1
- data/vendor/libbase64/.gitignore +0 -12
- data/vendor/libbase64/.travis.yml +0 -71
- data/vendor/libbase64/CMakeLists.txt +0 -264
- data/vendor/libbase64/LICENSE +0 -28
- data/vendor/libbase64/Makefile +0 -93
- data/vendor/libbase64/README.md +0 -474
- data/vendor/libbase64/base64-benchmarks.png +0 -0
- data/vendor/libbase64/bin/base64.c +0 -132
- data/vendor/libbase64/cmake/Modules/TargetArch.cmake +0 -29
- data/vendor/libbase64/cmake/Modules/TargetSIMDInstructionSet.cmake +0 -34
- data/vendor/libbase64/cmake/base64-config.cmake.in +0 -5
- data/vendor/libbase64/cmake/config.h.in +0 -25
- data/vendor/libbase64/cmake/test-arch.c +0 -35
- data/vendor/libbase64/include/libbase64.h +0 -145
- data/vendor/libbase64/lib/arch/avx/codec.c +0 -42
- data/vendor/libbase64/lib/arch/avx2/codec.c +0 -42
- data/vendor/libbase64/lib/arch/avx2/dec_loop.c +0 -110
- data/vendor/libbase64/lib/arch/avx2/dec_reshuffle.c +0 -34
- data/vendor/libbase64/lib/arch/avx2/enc_loop.c +0 -89
- data/vendor/libbase64/lib/arch/avx2/enc_reshuffle.c +0 -83
- data/vendor/libbase64/lib/arch/avx2/enc_translate.c +0 -30
- data/vendor/libbase64/lib/arch/generic/32/dec_loop.c +0 -86
- data/vendor/libbase64/lib/arch/generic/32/enc_loop.c +0 -73
- data/vendor/libbase64/lib/arch/generic/64/enc_loop.c +0 -77
- data/vendor/libbase64/lib/arch/generic/codec.c +0 -39
- data/vendor/libbase64/lib/arch/generic/dec_head.c +0 -37
- data/vendor/libbase64/lib/arch/generic/dec_tail.c +0 -91
- data/vendor/libbase64/lib/arch/generic/enc_head.c +0 -24
- data/vendor/libbase64/lib/arch/generic/enc_tail.c +0 -34
- data/vendor/libbase64/lib/arch/neon32/codec.c +0 -72
- data/vendor/libbase64/lib/arch/neon32/dec_loop.c +0 -106
- data/vendor/libbase64/lib/arch/neon32/enc_loop.c +0 -58
- data/vendor/libbase64/lib/arch/neon32/enc_reshuffle.c +0 -54
- data/vendor/libbase64/lib/arch/neon32/enc_translate.c +0 -57
- data/vendor/libbase64/lib/arch/neon64/codec.c +0 -70
- data/vendor/libbase64/lib/arch/neon64/dec_loop.c +0 -129
- data/vendor/libbase64/lib/arch/neon64/enc_loop.c +0 -66
- data/vendor/libbase64/lib/arch/neon64/enc_reshuffle.c +0 -54
- data/vendor/libbase64/lib/arch/sse41/codec.c +0 -42
- data/vendor/libbase64/lib/arch/sse42/codec.c +0 -42
- data/vendor/libbase64/lib/arch/ssse3/codec.c +0 -42
- data/vendor/libbase64/lib/arch/ssse3/dec_loop.c +0 -173
- data/vendor/libbase64/lib/arch/ssse3/dec_reshuffle.c +0 -33
- data/vendor/libbase64/lib/arch/ssse3/enc_loop.c +0 -67
- data/vendor/libbase64/lib/arch/ssse3/enc_reshuffle.c +0 -48
- data/vendor/libbase64/lib/arch/ssse3/enc_translate.c +0 -33
- data/vendor/libbase64/lib/codec_choose.c +0 -281
- data/vendor/libbase64/lib/codecs.h +0 -65
- data/vendor/libbase64/lib/env.h +0 -67
- data/vendor/libbase64/lib/exports.txt +0 -7
- data/vendor/libbase64/lib/lib.c +0 -164
- data/vendor/libbase64/lib/lib_openmp.c +0 -149
- data/vendor/libbase64/lib/tables/.gitignore +0 -1
- data/vendor/libbase64/lib/tables/Makefile +0 -17
- data/vendor/libbase64/lib/tables/table_dec_32bit.h +0 -393
- data/vendor/libbase64/lib/tables/table_enc_12bit.h +0 -1031
- data/vendor/libbase64/lib/tables/table_enc_12bit.py +0 -45
- data/vendor/libbase64/lib/tables/table_generator.c +0 -184
- data/vendor/libbase64/lib/tables/tables.c +0 -40
- data/vendor/libbase64/lib/tables/tables.h +0 -23
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#ifndef PACK_UUENCODE_H
|
|
2
|
+
#define PACK_UUENCODE_H
|
|
3
|
+
|
|
4
|
+
#include <stddef.h>
|
|
5
|
+
|
|
6
|
+
size_t pack_uuencode_encode(const char *src, size_t srclen, char *out);
|
|
7
|
+
/* Encodes like native pack("u") with line_len (a multiple of 3, 3..63) bytes per line; returns the length */
|
|
8
|
+
size_t pack_uuencode_lines(const char *src, size_t srclen, char *out, size_t line_len);
|
|
9
|
+
size_t pack_uuencode_decode(const char *src, size_t srclen, char *out);
|
|
10
|
+
/* Upper bound of the decoded length of srclen chars: srclen * 3 / 4 without overflow */
|
|
11
|
+
size_t pack_uudecode_cap(size_t srclen);
|
|
12
|
+
/*
|
|
13
|
+
* Decodes like native unpack("u") and returns the decoded length. out needs
|
|
14
|
+
* pack_uudecode_cap(srclen) + 3 bytes; NULL computes the length only.
|
|
15
|
+
*/
|
|
16
|
+
size_t pack_uudecode_lines(const char *src, size_t srclen, char *out);
|
|
17
|
+
|
|
18
|
+
#endif /* PACK_UUENCODE_H */
|
data/lib/ob64/core_ext.rb
CHANGED
|
@@ -1,29 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "ob64"
|
|
4
|
-
require "base64"
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def strict_encode64(bin)
|
|
9
|
-
Ob64.strictier_encode(bin)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def strict_decode64(str)
|
|
13
|
-
Ob64.strictier_decode(str)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def urlsafe_encode64(bin, padding: true)
|
|
17
|
-
Ob64.urlsafe_encode(bin, padding: padding)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def urlsafe_decode64(str)
|
|
21
|
-
Ob64.urlsafe_decode(str)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
::Base64.prepend(CoreExt)
|
|
26
|
-
::Base64.singleton_class.prepend(CoreExt)
|
|
27
|
-
|
|
28
|
-
private_constant :CoreExt
|
|
29
|
-
end
|
|
5
|
+
::Array.prepend(Ob64::Ext::Pack)
|
|
6
|
+
::String.prepend(Ob64::Ext::Unpack)
|
data/lib/ob64/version.rb
CHANGED
data/lib/ob64.rb
CHANGED
|
@@ -3,94 +3,173 @@
|
|
|
3
3
|
require_relative "ob64/version"
|
|
4
4
|
require_relative "ob64_ext"
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Fast base64 and uuencode encoding and decoding: see {Base64} and {UU}.
|
|
7
7
|
module Ob64
|
|
8
|
-
# The glue between Ruby and
|
|
9
|
-
module
|
|
8
|
+
# The glue between Ruby and the C codecs. See +../ext/ob64/ob64_ext.c+.
|
|
9
|
+
module Ext; end
|
|
10
10
|
|
|
11
|
-
include
|
|
12
|
-
extend
|
|
11
|
+
include Ext
|
|
12
|
+
extend Ext
|
|
13
13
|
|
|
14
14
|
module_function
|
|
15
15
|
|
|
16
|
-
# Returns the Base64
|
|
17
|
-
#
|
|
18
|
-
# No line feeds are added.
|
|
16
|
+
# Returns the codec used by {Base64}, {UU} and, with +ob64/core_ext+,
|
|
17
|
+
# +pack+ and +unpack+ with +m+ and +u+. Defaults to {best_codec}.
|
|
19
18
|
#
|
|
20
|
-
# @
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
__encode(bin)
|
|
19
|
+
# @return [Symbol] one of {codecs}
|
|
20
|
+
def codec
|
|
21
|
+
__codec
|
|
24
22
|
end
|
|
25
23
|
|
|
26
|
-
#
|
|
27
|
-
# This method complies with RFC 4648.
|
|
28
|
-
# ArgumentError is raised if +string+ is incorrectly padded or contains
|
|
29
|
-
# non-alphabet characters. Note that CR or LF are also rejected.
|
|
24
|
+
# Forces a codec for the whole process: every thread and Ractor.
|
|
30
25
|
#
|
|
31
|
-
# @param
|
|
32
|
-
# @return [
|
|
33
|
-
# @raise [ArgumentError] if +
|
|
34
|
-
def
|
|
35
|
-
|
|
26
|
+
# @param codec [Symbol] one of {codecs}
|
|
27
|
+
# @return [Symbol] +codec+
|
|
28
|
+
# @raise [ArgumentError] if +codec+ is unknown or this CPU cannot run it
|
|
29
|
+
def codec=(codec)
|
|
30
|
+
__set_codec(codec)
|
|
36
31
|
end
|
|
37
32
|
|
|
38
|
-
# Returns the
|
|
39
|
-
# This method complies with ``Base 64 Encoding with URL and Filename Safe
|
|
40
|
-
# Alphabet'' in RFC 4648.
|
|
41
|
-
# The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
|
42
|
-
# Note that the result can still contain '='.
|
|
43
|
-
# You can remove the padding by setting +padding+ as false.
|
|
33
|
+
# Returns the codecs this CPU runs, best last. +:scalar+ is plain C.
|
|
44
34
|
#
|
|
45
|
-
# @
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def urlsafe_encode(bin, padding: true)
|
|
49
|
-
string = __encode(bin)
|
|
50
|
-
string.chomp!("==") || string.chomp!("=") unless padding
|
|
51
|
-
string.tr!("+/", "-_")
|
|
52
|
-
string
|
|
35
|
+
# @return [Array<Symbol>] among +:scalar+, +:avx2+, +:avx512+, +:neon64+
|
|
36
|
+
def codecs
|
|
37
|
+
__codecs
|
|
53
38
|
end
|
|
54
39
|
|
|
55
|
-
# Returns the
|
|
56
|
-
# This method complies with ``Base 64 Encoding with URL and Filename Safe
|
|
57
|
-
# Alphabet'' in RFC 4648.
|
|
58
|
-
# The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
|
40
|
+
# Returns the best codec this CPU runs, the default {codec}.
|
|
59
41
|
#
|
|
60
|
-
#
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
#
|
|
64
|
-
# @param string [String]
|
|
65
|
-
# @return [String]
|
|
66
|
-
# @raise [ArgumentError] if +string+ cannot be decoded
|
|
67
|
-
def urlsafe_decode(string)
|
|
68
|
-
if !string.end_with?("=") && string.length % 4 != 0
|
|
69
|
-
string = string.ljust((string.length + 3) & ~3, "=")
|
|
70
|
-
string.tr!("-_", "+/")
|
|
71
|
-
else
|
|
72
|
-
string = string.tr("-_", "+/")
|
|
73
|
-
end
|
|
74
|
-
__decode(string)
|
|
42
|
+
# @return [Symbol] one of {codecs}
|
|
43
|
+
def best_codec
|
|
44
|
+
codecs.last
|
|
75
45
|
end
|
|
76
46
|
|
|
77
|
-
#
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
47
|
+
# Methods for base64-encoding and -decoding strings.
|
|
48
|
+
module Base64
|
|
49
|
+
include Ext
|
|
50
|
+
extend Ext
|
|
51
|
+
|
|
52
|
+
module_function
|
|
53
|
+
|
|
54
|
+
# Returns the Base64-encoded version of +bin+.
|
|
55
|
+
# This method complies with RFC 4648.
|
|
56
|
+
# No line feeds are added.
|
|
57
|
+
#
|
|
58
|
+
# @param bin [String]
|
|
59
|
+
# @return [String]
|
|
60
|
+
def encode(bin)
|
|
61
|
+
__encode(bin, false, true)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Returns the Base64-decoded version of +string+.
|
|
65
|
+
# This method complies with RFC 4648.
|
|
66
|
+
# ArgumentError is raised if +string+ is incorrectly padded or contains
|
|
67
|
+
# non-alphabet characters. Note that CR or LF are also rejected.
|
|
68
|
+
#
|
|
69
|
+
# With +loose+, the padding character is optional: both correctly-padded
|
|
70
|
+
# and unpadded input are accepted. Incorrectly-padded input is still
|
|
71
|
+
# rejected.
|
|
72
|
+
#
|
|
73
|
+
# @param string [String]
|
|
74
|
+
# @param loose [Boolean] - if unpadded input is accepted
|
|
75
|
+
# @return [String]
|
|
76
|
+
# @raise [ArgumentError] if +string+ cannot be decoded
|
|
77
|
+
def decode(string, loose: false)
|
|
78
|
+
__decode(string, false, loose)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Returns the Base64-encoded version of +bin+.
|
|
82
|
+
# This method complies with ``Base 64 Encoding with URL and Filename Safe
|
|
83
|
+
# Alphabet'' in RFC 4648.
|
|
84
|
+
# The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
|
85
|
+
# Note that the result can still contain '='.
|
|
86
|
+
# You can remove the padding by setting +padding+ as false.
|
|
87
|
+
#
|
|
88
|
+
# @param bin [String]
|
|
89
|
+
# @param padding [Boolean] - if the output must be padded
|
|
90
|
+
# @return [String]
|
|
91
|
+
def urlsafe_encode(bin, padding: true)
|
|
92
|
+
__encode(bin, true, padding)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Returns the Base64-decoded version of +string+.
|
|
96
|
+
# This method complies with ``Base 64 Encoding with URL and Filename Safe
|
|
97
|
+
# Alphabet'' in RFC 4648.
|
|
98
|
+
# The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
|
99
|
+
#
|
|
100
|
+
# The padding character is optional.
|
|
101
|
+
# This method accepts both correctly-padded and unpadded input.
|
|
102
|
+
# Note that it still rejects incorrectly-padded input.
|
|
103
|
+
#
|
|
104
|
+
# @param string [String]
|
|
105
|
+
# @return [String]
|
|
106
|
+
# @raise [ArgumentError] if +string+ cannot be decoded
|
|
107
|
+
def urlsafe_decode(string)
|
|
108
|
+
__decode(string, true, true)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Returns the length of the Base64-encoded version of +bin+.
|
|
112
|
+
#
|
|
113
|
+
# @param bin [String]
|
|
114
|
+
# @param padding [Boolean] - if the Base64-encoded version of +bin+ will be padded
|
|
115
|
+
# @return [Integer]
|
|
116
|
+
def encoded_length_of(bin, padding: true)
|
|
117
|
+
__encoded_length_of(bin, padding)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Returns the length of the Base64-decoded version of +string+.
|
|
121
|
+
#
|
|
122
|
+
# ArgumentError is raised if +string+ has an invalid length.
|
|
123
|
+
#
|
|
124
|
+
# @param string [String]
|
|
125
|
+
# @return [Integer]
|
|
126
|
+
# @raise [ArgumentError] if +string+ has an invalid length
|
|
127
|
+
def decoded_length_of(string)
|
|
128
|
+
__decoded_length_of(string)
|
|
129
|
+
end
|
|
84
130
|
end
|
|
85
131
|
|
|
86
|
-
#
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
132
|
+
# Methods for uuencoding and -decoding strings.
|
|
133
|
+
module UU
|
|
134
|
+
include Ext
|
|
135
|
+
extend Ext
|
|
136
|
+
|
|
137
|
+
module_function
|
|
138
|
+
|
|
139
|
+
# Returns the uuencoded version of +bin+, like <tt>[bin].pack("u")</tt>:
|
|
140
|
+
# lines of up to 45 input bytes, each ending in a newline.
|
|
141
|
+
#
|
|
142
|
+
# @param bin [String]
|
|
143
|
+
# @return [String]
|
|
144
|
+
def encode(bin)
|
|
145
|
+
__uuencode(bin)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Returns the uudecoded version of +string+, like <tt>string.unpack1("u")</tt>.
|
|
149
|
+
# Decoding is lenient, as in Ruby: it stops at the first invalid line and
|
|
150
|
+
# never raises for malformed input.
|
|
151
|
+
#
|
|
152
|
+
# @param string [String]
|
|
153
|
+
# @return [String]
|
|
154
|
+
def decode(string)
|
|
155
|
+
__uudecode(string)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# Returns the length of the uuencoded version of +bin+.
|
|
159
|
+
#
|
|
160
|
+
# @param bin [String]
|
|
161
|
+
# @return [Integer]
|
|
162
|
+
def encoded_length_of(bin)
|
|
163
|
+
__uuencoded_length_of(bin)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Returns the length of the uudecoded version of +string+.
|
|
167
|
+
# Like {decode}, never raises for malformed input.
|
|
168
|
+
#
|
|
169
|
+
# @param string [String]
|
|
170
|
+
# @return [Integer]
|
|
171
|
+
def decoded_length_of(string)
|
|
172
|
+
__uudecoded_length_of(string)
|
|
173
|
+
end
|
|
95
174
|
end
|
|
96
175
|
end
|
data/ob64.gemspec
CHANGED
|
@@ -10,15 +10,13 @@ Gem::Specification.new do |spec|
|
|
|
10
10
|
spec.email = ["joao.fernandes@ist.utl.pt"]
|
|
11
11
|
spec.homepage = "https://github.com/jcmfernandes/ob64"
|
|
12
12
|
spec.license = "MIT"
|
|
13
|
-
spec.summary = "A fast Base64 encoder and decoder."
|
|
14
|
-
spec.description = "A fast Base64 encoder and decoder that makes use of SIMD extensions."
|
|
13
|
+
spec.summary = "A fast Base64 and uuencode encoder and decoder."
|
|
14
|
+
spec.description = "A fast Base64 and uuencode encoder and decoder that makes use of SIMD extensions."
|
|
15
15
|
|
|
16
16
|
# Specify which files should be added to the gem when it is released.
|
|
17
17
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
18
18
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
19
19
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
|
20
|
-
end + Dir.chdir(File.join(File.expand_path(__dir__), "vendor", "libbase64")) do
|
|
21
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }.map! { |f| "vendor/libbase64/#{f}" }
|
|
22
20
|
end
|
|
23
21
|
spec.require_paths = ["lib"]
|
|
24
22
|
spec.extensions = ["ext/ob64/extconf.rb"]
|
|
@@ -30,5 +28,5 @@ Gem::Specification.new do |spec|
|
|
|
30
28
|
"source_code_uri" => spec.homepage + "/tree/v#{spec.version}"
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
spec.required_ruby_version = Gem::Requirement.new(">=
|
|
31
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 3.3.0")
|
|
34
32
|
end
|
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ob64
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- João Fernandes
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies: []
|
|
13
|
-
description: A fast Base64 encoder and decoder that makes use of SIMD
|
|
12
|
+
description: A fast Base64 and uuencode encoder and decoder that makes use of SIMD
|
|
13
|
+
extensions.
|
|
14
14
|
email:
|
|
15
15
|
- joao.fernandes@ist.utl.pt
|
|
16
16
|
executables: []
|
|
@@ -18,9 +18,9 @@ extensions:
|
|
|
18
18
|
- ext/ob64/extconf.rb
|
|
19
19
|
extra_rdoc_files: []
|
|
20
20
|
files:
|
|
21
|
+
- ".github/dependabot.yml"
|
|
21
22
|
- ".github/workflows/main.yml"
|
|
22
23
|
- ".gitignore"
|
|
23
|
-
- ".gitmodules"
|
|
24
24
|
- ".rspec"
|
|
25
25
|
- ".standard.yml"
|
|
26
26
|
- ".yardopts"
|
|
@@ -39,82 +39,27 @@ files:
|
|
|
39
39
|
- bin/setup
|
|
40
40
|
- bin/standardrb
|
|
41
41
|
- ext/ob64/extconf.rb
|
|
42
|
-
- ext/ob64/libbase64.h
|
|
43
42
|
- ext/ob64/ob64.h
|
|
44
43
|
- ext/ob64/ob64_ext.c
|
|
44
|
+
- ext/ob64/ob64_pack.c
|
|
45
|
+
- ext/ob64/pack_base64.c
|
|
46
|
+
- ext/ob64/pack_base64.h
|
|
47
|
+
- ext/ob64/pack_generic.h
|
|
48
|
+
- ext/ob64/pack_simd.h
|
|
49
|
+
- ext/ob64/pack_uuencode.c
|
|
50
|
+
- ext/ob64/pack_uuencode.h
|
|
45
51
|
- lib/ob64.rb
|
|
46
52
|
- lib/ob64/core_ext.rb
|
|
47
53
|
- lib/ob64/version.rb
|
|
48
54
|
- 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
|
|
109
55
|
homepage: https://github.com/jcmfernandes/ob64
|
|
110
56
|
licenses:
|
|
111
57
|
- MIT
|
|
112
58
|
metadata:
|
|
113
59
|
homepage_uri: https://github.com/jcmfernandes/ob64
|
|
114
60
|
changelog_uri: https://github.com/jcmfernandes/ob64/blob/master/CHANGELOG.md
|
|
115
|
-
documentation_uri: https://www.rubydoc.info/gems/ob64/0.
|
|
116
|
-
source_code_uri: https://github.com/jcmfernandes/ob64/tree/v0.
|
|
117
|
-
post_install_message:
|
|
61
|
+
documentation_uri: https://www.rubydoc.info/gems/ob64/0.6.0
|
|
62
|
+
source_code_uri: https://github.com/jcmfernandes/ob64/tree/v0.6.0
|
|
118
63
|
rdoc_options: []
|
|
119
64
|
require_paths:
|
|
120
65
|
- lib
|
|
@@ -122,15 +67,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
122
67
|
requirements:
|
|
123
68
|
- - ">="
|
|
124
69
|
- !ruby/object:Gem::Version
|
|
125
|
-
version:
|
|
70
|
+
version: 3.3.0
|
|
126
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
72
|
requirements:
|
|
128
73
|
- - ">="
|
|
129
74
|
- !ruby/object:Gem::Version
|
|
130
75
|
version: '0'
|
|
131
76
|
requirements: []
|
|
132
|
-
rubygems_version: 3.
|
|
133
|
-
signing_key:
|
|
77
|
+
rubygems_version: 3.6.9
|
|
134
78
|
specification_version: 4
|
|
135
|
-
summary: A fast Base64 encoder and decoder.
|
|
79
|
+
summary: A fast Base64 and uuencode encoder and decoder.
|
|
136
80
|
test_files: []
|
data/.gitmodules
DELETED
data/ext/ob64/libbase64.h
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
#include "../../vendor/libbase64/include/libbase64.h"
|
data/vendor/libbase64/.gitignore
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
language: c
|
|
2
|
-
services: docker
|
|
3
|
-
|
|
4
|
-
jobs:
|
|
5
|
-
allow_failures:
|
|
6
|
-
- os: osx
|
|
7
|
-
- arch: ppc64le
|
|
8
|
-
|
|
9
|
-
include:
|
|
10
|
-
- name: linux-amd64-gcc
|
|
11
|
-
os: linux
|
|
12
|
-
arch: amd64
|
|
13
|
-
compiler: gcc
|
|
14
|
-
script: test/ci/amd64.sh
|
|
15
|
-
|
|
16
|
-
- name: linux-amd64-gcc +openmp
|
|
17
|
-
os: linux
|
|
18
|
-
arch: amd64
|
|
19
|
-
compiler: gcc
|
|
20
|
-
env: OPENMP=1 OMP_NUM_THREADS=4
|
|
21
|
-
script: test/ci/amd64.sh
|
|
22
|
-
|
|
23
|
-
- name: linux-amd64-clang
|
|
24
|
-
os: linux
|
|
25
|
-
arch: amd64
|
|
26
|
-
compiler: clang
|
|
27
|
-
script: test/ci/amd64.sh
|
|
28
|
-
|
|
29
|
-
- name: linux-arm32-gcc
|
|
30
|
-
compiler: gcc
|
|
31
|
-
script: test/ci/docker-arm32.sh
|
|
32
|
-
|
|
33
|
-
- name: linux-arm32-clang
|
|
34
|
-
compiler: clang
|
|
35
|
-
script: test/ci/docker-arm32.sh
|
|
36
|
-
|
|
37
|
-
- name: linux-powerpc-gcc
|
|
38
|
-
compiler: gcc
|
|
39
|
-
script: test/ci/docker-powerpc.sh
|
|
40
|
-
|
|
41
|
-
- name: linux-arm64-gcc
|
|
42
|
-
os: linux
|
|
43
|
-
arch: arm64
|
|
44
|
-
compiler: gcc
|
|
45
|
-
env: NEON64_CFLAGS="-march=armv8-a"
|
|
46
|
-
script: test/ci/generic.sh
|
|
47
|
-
|
|
48
|
-
- name: linux-arm64-clang
|
|
49
|
-
os: linux
|
|
50
|
-
arch: arm64
|
|
51
|
-
compiler: clang
|
|
52
|
-
env: NEON64_CFLAGS="-march=armv8-a"
|
|
53
|
-
script: test/ci/generic.sh
|
|
54
|
-
|
|
55
|
-
- name: linux-s390x-gcc
|
|
56
|
-
os: linux
|
|
57
|
-
arch: s390x
|
|
58
|
-
compiler: gcc
|
|
59
|
-
script: test/ci/generic.sh
|
|
60
|
-
|
|
61
|
-
- name: linux-ppc64le-gcc
|
|
62
|
-
os: linux
|
|
63
|
-
arch: ppc64le
|
|
64
|
-
compiler: gcc
|
|
65
|
-
script: test/ci/generic.sh
|
|
66
|
-
|
|
67
|
-
- name: osx-amd64-clang
|
|
68
|
-
os: osx
|
|
69
|
-
arch: amd64
|
|
70
|
-
compiler: clang
|
|
71
|
-
script: test/ci/amd64.sh
|