google-protobuf 3.24.4-java → 3.25.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/ext/google/protobuf_c/Rakefile +3 -0
  3. data/ext/google/protobuf_c/glue.c +21 -0
  4. data/ext/google/protobuf_c/message.c +1388 -0
  5. data/ext/google/protobuf_c/message.h +79 -0
  6. data/ext/google/protobuf_c/protobuf.c +343 -0
  7. data/ext/google/protobuf_c/protobuf.h +112 -0
  8. data/ext/google/protobuf_c/ruby-upb.c +14414 -0
  9. data/ext/google/protobuf_c/ruby-upb.h +13044 -0
  10. data/ext/google/protobuf_c/shared_convert.c +64 -0
  11. data/ext/google/protobuf_c/shared_convert.h +26 -0
  12. data/ext/google/protobuf_c/shared_message.c +65 -0
  13. data/ext/google/protobuf_c/shared_message.h +25 -0
  14. data/ext/google/protobuf_c/third_party/utf8_range/LICENSE +22 -0
  15. data/ext/google/protobuf_c/third_party/utf8_range/naive.c +92 -0
  16. data/ext/google/protobuf_c/third_party/utf8_range/range2-neon.c +157 -0
  17. data/ext/google/protobuf_c/third_party/utf8_range/range2-sse.c +170 -0
  18. data/ext/google/protobuf_c/third_party/utf8_range/utf8_range.h +21 -0
  19. data/lib/google/protobuf/any_pb.rb +1 -1
  20. data/lib/google/protobuf/api_pb.rb +1 -1
  21. data/lib/google/protobuf/descriptor_pb.rb +6 -3
  22. data/lib/google/protobuf/duration_pb.rb +1 -1
  23. data/lib/google/protobuf/empty_pb.rb +1 -1
  24. data/lib/google/protobuf/ffi/descriptor.rb +154 -0
  25. data/lib/google/protobuf/ffi/descriptor_pool.rb +70 -0
  26. data/lib/google/protobuf/ffi/enum_descriptor.rb +161 -0
  27. data/lib/google/protobuf/ffi/ffi.rb +213 -0
  28. data/lib/google/protobuf/ffi/field_descriptor.rb +309 -0
  29. data/lib/google/protobuf/ffi/file_descriptor.rb +48 -0
  30. data/lib/google/protobuf/ffi/internal/arena.rb +66 -0
  31. data/lib/google/protobuf/ffi/internal/convert.rb +305 -0
  32. data/lib/google/protobuf/ffi/internal/pointer_helper.rb +35 -0
  33. data/lib/google/protobuf/ffi/internal/type_safety.rb +25 -0
  34. data/lib/google/protobuf/ffi/map.rb +396 -0
  35. data/lib/google/protobuf/ffi/message.rb +641 -0
  36. data/lib/google/protobuf/ffi/object_cache.rb +30 -0
  37. data/lib/google/protobuf/ffi/oneof_descriptor.rb +88 -0
  38. data/lib/google/protobuf/ffi/repeated_field.rb +503 -0
  39. data/lib/google/protobuf/field_mask_pb.rb +1 -1
  40. data/lib/google/protobuf/message_exts.rb +3 -26
  41. data/lib/google/protobuf/object_cache.rb +3 -26
  42. data/lib/google/protobuf/plugin_pb.rb +1 -1
  43. data/lib/google/protobuf/repeated_field.rb +3 -26
  44. data/lib/google/protobuf/source_context_pb.rb +1 -1
  45. data/lib/google/protobuf/struct_pb.rb +1 -1
  46. data/lib/google/protobuf/timestamp_pb.rb +1 -1
  47. data/lib/google/protobuf/type_pb.rb +1 -1
  48. data/lib/google/protobuf/well_known_types.rb +3 -26
  49. data/lib/google/protobuf/wrappers_pb.rb +1 -1
  50. data/lib/google/protobuf.rb +26 -45
  51. data/lib/google/protobuf_ffi.rb +50 -0
  52. data/lib/google/protobuf_java.jar +0 -0
  53. data/lib/google/protobuf_native.rb +20 -0
  54. data/lib/google/tasks/ffi.rake +102 -0
  55. metadata +110 -4
@@ -1,32 +1,9 @@
1
1
  # Protocol Buffers - Google's data interchange format
2
2
  # Copyright 2008 Google Inc. All rights reserved.
3
- # https://developers.google.com/protocol-buffers/
4
3
  #
5
- # Redistribution and use in source and binary forms, with or without
6
- # modification, are permitted provided that the following conditions are
7
- # met:
8
- #
9
- # * Redistributions of source code must retain the above copyright
10
- # notice, this list of conditions and the following disclaimer.
11
- # * Redistributions in binary form must reproduce the above
12
- # copyright notice, this list of conditions and the following disclaimer
13
- # in the documentation and/or other materials provided with the
14
- # distribution.
15
- # * Neither the name of Google Inc. nor the names of its
16
- # contributors may be used to endorse or promote products derived from
17
- # this software without specific prior written permission.
18
- #
19
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4
+ # Use of this source code is governed by a BSD-style
5
+ # license that can be found in the LICENSE file or at
6
+ # https://developers.google.com/open-source/licenses/bsd
30
7
 
31
8
  require 'forwardable'
32
9
 
@@ -11,7 +11,7 @@ pool = Google::Protobuf::DescriptorPool.generated_pool
11
11
 
12
12
  begin
13
13
  pool.add_serialized_file(descriptor_data)
14
- rescue TypeError => e
14
+ rescue TypeError
15
15
  # Compatibility code: will be removed in the next major version.
16
16
  require 'google/protobuf/descriptor_pb'
17
17
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
@@ -11,7 +11,7 @@ pool = Google::Protobuf::DescriptorPool.generated_pool
11
11
 
12
12
  begin
13
13
  pool.add_serialized_file(descriptor_data)
14
- rescue TypeError => e
14
+ rescue TypeError
15
15
  # Compatibility code: will be removed in the next major version.
16
16
  require 'google/protobuf/descriptor_pb'
17
17
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
@@ -11,7 +11,7 @@ pool = Google::Protobuf::DescriptorPool.generated_pool
11
11
 
12
12
  begin
13
13
  pool.add_serialized_file(descriptor_data)
14
- rescue TypeError => e
14
+ rescue TypeError
15
15
  # Compatibility code: will be removed in the next major version.
16
16
  require 'google/protobuf/descriptor_pb'
17
17
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
@@ -14,7 +14,7 @@ pool = Google::Protobuf::DescriptorPool.generated_pool
14
14
 
15
15
  begin
16
16
  pool.add_serialized_file(descriptor_data)
17
- rescue TypeError => e
17
+ rescue TypeError
18
18
  # Compatibility code: will be removed in the next major version.
19
19
  require 'google/protobuf/descriptor_pb'
20
20
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
@@ -1,33 +1,10 @@
1
1
  #!/usr/bin/ruby
2
2
  # Protocol Buffers - Google's data interchange format
3
3
  # Copyright 2008 Google Inc. All rights reserved.
4
- # https://developers.google.com/protocol-buffers/
5
4
  #
6
- # Redistribution and use in source and binary forms, with or without
7
- # modification, are permitted provided that the following conditions are
8
- # met:
9
- #
10
- # * Redistributions of source code must retain the above copyright
11
- # notice, this list of conditions and the following disclaimer.
12
- # * Redistributions in binary form must reproduce the above
13
- # copyright notice, this list of conditions and the following disclaimer
14
- # in the documentation and/or other materials provided with the
15
- # distribution.
16
- # * Neither the name of Google Inc. nor the names of its
17
- # contributors may be used to endorse or promote products derived from
18
- # this software without specific prior written permission.
19
- #
20
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5
+ # Use of this source code is governed by a BSD-style
6
+ # license that can be found in the LICENSE file or at
7
+ # https://developers.google.com/open-source/licenses/bsd
31
8
 
32
9
  require 'google/protobuf/any_pb'
33
10
  require 'google/protobuf/duration_pb'
@@ -11,7 +11,7 @@ pool = Google::Protobuf::DescriptorPool.generated_pool
11
11
 
12
12
  begin
13
13
  pool.add_serialized_file(descriptor_data)
14
- rescue TypeError => e
14
+ rescue TypeError
15
15
  # Compatibility code: will be removed in the next major version.
16
16
  require 'google/protobuf/descriptor_pb'
17
17
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
@@ -1,32 +1,9 @@
1
1
  # Protocol Buffers - Google's data interchange format
2
2
  # Copyright 2008 Google Inc. All rights reserved.
3
- # https://developers.google.com/protocol-buffers/
4
3
  #
5
- # Redistribution and use in source and binary forms, with or without
6
- # modification, are permitted provided that the following conditions are
7
- # met:
8
- #
9
- # * Redistributions of source code must retain the above copyright
10
- # notice, this list of conditions and the following disclaimer.
11
- # * Redistributions in binary form must reproduce the above
12
- # copyright notice, this list of conditions and the following disclaimer
13
- # in the documentation and/or other materials provided with the
14
- # distribution.
15
- # * Neither the name of Google Inc. nor the names of its
16
- # contributors may be used to endorse or promote products derived from
17
- # this software without specific prior written permission.
18
- #
19
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4
+ # Use of this source code is governed by a BSD-style
5
+ # license that can be found in the LICENSE file or at
6
+ # https://developers.google.com/open-source/licenses/bsd
30
7
 
31
8
  # require mixins before we hook them into the java & c code
32
9
  require 'google/protobuf/message_exts'
@@ -39,26 +16,16 @@ module Google
39
16
  class Error < StandardError; end
40
17
  class ParseError < Error; end
41
18
  class TypeError < ::TypeError; end
42
- end
43
- end
44
-
45
- if RUBY_PLATFORM == "java"
46
- require 'json'
47
- require 'google/protobuf_java'
48
- else
49
- begin
50
- require "google/#{RUBY_VERSION.sub(/\.\d+$/, '')}/protobuf_c"
51
- rescue LoadError
52
- require 'google/protobuf_c'
53
- end
54
19
 
55
- end
56
-
57
- require 'google/protobuf/descriptor_dsl'
58
- require 'google/protobuf/repeated_field'
59
-
60
- module Google
61
- module Protobuf
20
+ PREFER_FFI = case ENV['PROTOCOL_BUFFERS_RUBY_IMPLEMENTATION']
21
+ when nil, "", /^native$/i
22
+ false
23
+ when /^ffi$/i
24
+ true
25
+ else
26
+ warn "Unexpected value `#{ENV['PROTOCOL_BUFFERS_RUBY_IMPLEMENTATION']}` for environment variable `PROTOCOL_BUFFERS_RUBY_IMPLEMENTATION`. Should be either \"FFI\", \"NATIVE\"."
27
+ false
28
+ end
62
29
 
63
30
  def self.encode(msg, options = {})
64
31
  msg.to_proto(options)
@@ -76,5 +43,19 @@ module Google
76
43
  klass.decode_json(json, options)
77
44
  end
78
45
 
46
+ IMPLEMENTATION = if PREFER_FFI
47
+ begin
48
+ require 'google/protobuf_ffi'
49
+ :FFI
50
+ rescue LoadError
51
+ warn "Caught exception `#{$!.message}` while loading FFI implementation of google/protobuf."
52
+ warn "Falling back to native implementation."
53
+ require 'google/protobuf_native'
54
+ :NATIVE
55
+ end
56
+ else
57
+ require 'google/protobuf_native'
58
+ :NATIVE
59
+ end
79
60
  end
80
61
  end
@@ -0,0 +1,50 @@
1
+ # Protocol Buffers - Google's data interchange format
2
+ # Copyright 2023 Google Inc. All rights reserved.
3
+ #
4
+ # Use of this source code is governed by a BSD-style
5
+ # license that can be found in the LICENSE file or at
6
+ # https://developers.google.com/open-source/licenses/bsd
7
+
8
+ require 'ffi-compiler/loader'
9
+ require 'google/protobuf/ffi/ffi'
10
+ require 'google/protobuf/ffi/internal/type_safety'
11
+ require 'google/protobuf/ffi/internal/pointer_helper'
12
+ require 'google/protobuf/ffi/internal/arena'
13
+ require 'google/protobuf/ffi/internal/convert'
14
+ require 'google/protobuf/ffi/descriptor'
15
+ require 'google/protobuf/ffi/enum_descriptor'
16
+ require 'google/protobuf/ffi/field_descriptor'
17
+ require 'google/protobuf/ffi/oneof_descriptor'
18
+ require 'google/protobuf/ffi/descriptor_pool'
19
+ require 'google/protobuf/ffi/file_descriptor'
20
+ require 'google/protobuf/ffi/map'
21
+ require 'google/protobuf/ffi/object_cache'
22
+ require 'google/protobuf/ffi/repeated_field'
23
+ require 'google/protobuf/ffi/message'
24
+ require 'google/protobuf/descriptor_dsl'
25
+
26
+ module Google
27
+ module Protobuf
28
+ def self.deep_copy(object)
29
+ case object
30
+ when RepeatedField
31
+ RepeatedField.send(:deep_copy, object)
32
+ when Google::Protobuf::Map
33
+ Google::Protobuf::Map.deep_copy(object)
34
+ when Google::Protobuf::MessageExts
35
+ object.class.send(:deep_copy, object.instance_variable_get(:@msg))
36
+ else
37
+ raise NotImplementedError
38
+ end
39
+ end
40
+
41
+ def self.discard_unknown(message)
42
+ raise FrozenError if message.frozen?
43
+ raise ArgumentError.new "Expected message, got #{message.class} instead." if message.instance_variable_get(:@msg).nil?
44
+ unless Google::Protobuf::FFI.message_discard_unknown(message.instance_variable_get(:@msg), message.class.descriptor, 128)
45
+ raise RuntimeError.new "Messages nested too deeply."
46
+ end
47
+ nil
48
+ end
49
+ end
50
+ end
Binary file
@@ -0,0 +1,20 @@
1
+ # Protocol Buffers - Google's data interchange format
2
+ # Copyright 2023 Google Inc. All rights reserved.
3
+ #
4
+ # Use of this source code is governed by a BSD-style
5
+ # license that can be found in the LICENSE file or at
6
+ # https://developers.google.com/open-source/licenses/bsd
7
+
8
+ if RUBY_PLATFORM == "java"
9
+ require 'json'
10
+ require 'google/protobuf_java'
11
+ else
12
+ begin
13
+ require "google/#{RUBY_VERSION.sub(/\.\d+$/, '')}/protobuf_c"
14
+ rescue LoadError
15
+ require 'google/protobuf_c'
16
+ end
17
+ end
18
+
19
+ require 'google/protobuf/descriptor_dsl'
20
+ require 'google/protobuf/repeated_field'
@@ -0,0 +1,102 @@
1
+ # # @param task [FFI::Compiler::CompileTask] task to configure
2
+ def configure_common_compile_task(task)
3
+ if FileUtils.pwd.include? 'ext'
4
+ src_dir = '.'
5
+ third_party_path = 'third_party/utf8_range'
6
+ else
7
+ src_dir = 'ext/google/protobuf_c'
8
+ third_party_path = 'ext/google/protobuf_c/third_party/utf8_range'
9
+ end
10
+
11
+ task.add_include_path third_party_path
12
+ task.add_define 'NDEBUG'
13
+ task.cflags << "-std=gnu99 -O3"
14
+ [
15
+ :convert, :defs, :map, :message, :protobuf, :repeated_field, :wrap_memcpy
16
+ ].each { |file| task.exclude << "/#{file}.c" }
17
+ task.ext_dir = src_dir
18
+ task.source_dirs = [src_dir]
19
+ if RbConfig::CONFIG['target_os'] =~ /darwin|linux/
20
+ task.cflags << "-Wall -Wsign-compare -Wno-declaration-after-statement"
21
+ end
22
+ end
23
+
24
+ # FFI::CompilerTask's constructor walks the filesystem at task definition time
25
+ # to create subtasks for each source file, so files from third_party must be
26
+ # copied into place before the task is defined for it to work correctly.
27
+ # TODO Is there a sane way to check for generated protos under lib too?
28
+ def with_generated_files
29
+ expected_path = FileUtils.pwd.include?('ext') ? 'third_party/utf8_range' : 'ext/google/protobuf_c/third_party/utf8_range'
30
+ if File.directory?(expected_path)
31
+ yield
32
+ else
33
+ task :default do
34
+ # It is possible, especially in cases like the first invocation of
35
+ # `rake test` following `rake clean` or a fresh checkout that the
36
+ # `copy_third_party` task has been executed since initial task definition.
37
+ # If so, run the task definition block now and invoke it explicitly.
38
+ if File.directory?(expected_path)
39
+ yield
40
+ Rake::Task[:default].invoke
41
+ else
42
+ raise "Missing directory #{File.absolute_path(expected_path)}." +
43
+ " Did you forget to run `rake copy_third_party` before building" +
44
+ " native extensions?"
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ begin
51
+ require "ffi-compiler/compile_task"
52
+
53
+ desc "Compile Protobuf library for FFI"
54
+ namespace "ffi-protobuf" do
55
+ with_generated_files do
56
+ # Compile Ruby UPB separately in order to limit use of -DUPB_BUILD_API to one
57
+ # compilation unit.
58
+ desc "Compile UPB library for FFI"
59
+ namespace "ffi-upb" do
60
+ with_generated_files do
61
+ FFI::Compiler::CompileTask.new('ruby-upb') do |c|
62
+ configure_common_compile_task c
63
+ c.add_define "UPB_BUILD_API"
64
+ c.exclude << "/glue.c"
65
+ c.exclude << "/shared_message.c"
66
+ c.exclude << "/shared_convert.c"
67
+ if RbConfig::CONFIG['target_os'] =~ /darwin|linux/
68
+ c.cflags << "-fvisibility=hidden"
69
+ end
70
+ end
71
+ end
72
+ end
73
+
74
+ FFI::Compiler::CompileTask.new 'protobuf_c_ffi' do |c|
75
+ configure_common_compile_task c
76
+ # Ruby UPB was already compiled with different flags.
77
+ c.exclude << "/range2-neon.c"
78
+ c.exclude << "/range2-sse.c"
79
+ c.exclude << "/naive.c"
80
+ c.exclude << "/ruby-upb.c"
81
+ end
82
+
83
+ # Setup dependencies so that the .o files generated by building ffi-upb are
84
+ # available to link here.
85
+ # TODO Can this be simplified? Can the single shared library be used
86
+ # instead of the object files?
87
+ protobuf_c_task = Rake::Task[:default]
88
+ protobuf_c_shared_lib_task = Rake::Task[protobuf_c_task.prereqs.last]
89
+ ruby_upb_shared_lib_task = Rake::Task[:"ffi-upb:default"].prereqs.first
90
+ Rake::Task[ruby_upb_shared_lib_task].prereqs.each do |dependency|
91
+ protobuf_c_shared_lib_task.prereqs.prepend dependency
92
+ end
93
+ end
94
+ end
95
+ rescue LoadError
96
+ desc "Compile Protobuf library for FFI"
97
+ namespace "ffi-protobuf" do
98
+ task :default do
99
+ warn "Skipping build of FFI; `gem install ffi-compiler` to enable."
100
+ end
101
+ end
102
+ end
metadata CHANGED
@@ -1,15 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.24.4
4
+ version: 3.25.0
5
5
  platform: java
6
6
  authors:
7
7
  - Protobuf Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-03 00:00:00.000000000 Z
11
+ date: 2023-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1'
19
+ name: ffi
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1'
33
+ name: ffi-compiler
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '13'
47
+ name: rake
48
+ prerelease: false
49
+ type: :development
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '13'
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1'
61
+ name: ffi
62
+ prerelease: false
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1'
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1'
75
+ name: ffi-compiler
76
+ prerelease: false
77
+ type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1'
13
83
  - !ruby/object:Gem::Dependency
14
84
  requirement: !ruby/object:Gem::Requirement
15
85
  requirements:
@@ -47,9 +117,27 @@ dependencies:
47
117
  description: Protocol Buffers are Google's data interchange format.
48
118
  email: protobuf@googlegroups.com
49
119
  executables: []
50
- extensions: []
120
+ extensions:
121
+ - ext/google/protobuf_c/Rakefile
51
122
  extra_rdoc_files: []
52
123
  files:
124
+ - ext/google/protobuf_c/Rakefile
125
+ - ext/google/protobuf_c/glue.c
126
+ - ext/google/protobuf_c/message.c
127
+ - ext/google/protobuf_c/message.h
128
+ - ext/google/protobuf_c/protobuf.c
129
+ - ext/google/protobuf_c/protobuf.h
130
+ - ext/google/protobuf_c/ruby-upb.c
131
+ - ext/google/protobuf_c/ruby-upb.h
132
+ - ext/google/protobuf_c/shared_convert.c
133
+ - ext/google/protobuf_c/shared_convert.h
134
+ - ext/google/protobuf_c/shared_message.c
135
+ - ext/google/protobuf_c/shared_message.h
136
+ - ext/google/protobuf_c/third_party/utf8_range/LICENSE
137
+ - ext/google/protobuf_c/third_party/utf8_range/naive.c
138
+ - ext/google/protobuf_c/third_party/utf8_range/range2-neon.c
139
+ - ext/google/protobuf_c/third_party/utf8_range/range2-sse.c
140
+ - ext/google/protobuf_c/third_party/utf8_range/utf8_range.h
53
141
  - lib/google/protobuf.rb
54
142
  - lib/google/protobuf/any_pb.rb
55
143
  - lib/google/protobuf/api_pb.rb
@@ -57,6 +145,21 @@ files:
57
145
  - lib/google/protobuf/descriptor_pb.rb
58
146
  - lib/google/protobuf/duration_pb.rb
59
147
  - lib/google/protobuf/empty_pb.rb
148
+ - lib/google/protobuf/ffi/descriptor.rb
149
+ - lib/google/protobuf/ffi/descriptor_pool.rb
150
+ - lib/google/protobuf/ffi/enum_descriptor.rb
151
+ - lib/google/protobuf/ffi/ffi.rb
152
+ - lib/google/protobuf/ffi/field_descriptor.rb
153
+ - lib/google/protobuf/ffi/file_descriptor.rb
154
+ - lib/google/protobuf/ffi/internal/arena.rb
155
+ - lib/google/protobuf/ffi/internal/convert.rb
156
+ - lib/google/protobuf/ffi/internal/pointer_helper.rb
157
+ - lib/google/protobuf/ffi/internal/type_safety.rb
158
+ - lib/google/protobuf/ffi/map.rb
159
+ - lib/google/protobuf/ffi/message.rb
160
+ - lib/google/protobuf/ffi/object_cache.rb
161
+ - lib/google/protobuf/ffi/oneof_descriptor.rb
162
+ - lib/google/protobuf/ffi/repeated_field.rb
60
163
  - lib/google/protobuf/field_mask_pb.rb
61
164
  - lib/google/protobuf/message_exts.rb
62
165
  - lib/google/protobuf/object_cache.rb
@@ -68,12 +171,15 @@ files:
68
171
  - lib/google/protobuf/type_pb.rb
69
172
  - lib/google/protobuf/well_known_types.rb
70
173
  - lib/google/protobuf/wrappers_pb.rb
174
+ - lib/google/protobuf_ffi.rb
71
175
  - lib/google/protobuf_java.jar
176
+ - lib/google/protobuf_native.rb
177
+ - lib/google/tasks/ffi.rake
72
178
  homepage: https://developers.google.com/protocol-buffers
73
179
  licenses:
74
180
  - BSD-3-Clause
75
181
  metadata:
76
- source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.24.4/ruby
182
+ source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.25.0/ruby
77
183
  post_install_message:
78
184
  rdoc_options: []
79
185
  require_paths: