rdkafka 0.30.0-aarch64-linux-gnu → 0.31.0-aarch64-linux-gnu

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -2
  3. data/README.md +1 -0
  4. data/docker-compose-ssl.yml +1 -0
  5. data/docker-compose.yml +1 -0
  6. data/ext/librdkafka.so +0 -0
  7. data/lib/rdkafka/admin/describe_cluster_handle.rb +31 -0
  8. data/lib/rdkafka/admin/describe_cluster_report.rb +48 -0
  9. data/lib/rdkafka/admin/describe_consumer_groups_handle.rb +31 -0
  10. data/lib/rdkafka/admin/describe_consumer_groups_report.rb +151 -0
  11. data/lib/rdkafka/admin/describe_result_parsing.rb +47 -0
  12. data/lib/rdkafka/admin/describe_topics_handle.rb +31 -0
  13. data/lib/rdkafka/admin/describe_topics_report.rb +118 -0
  14. data/lib/rdkafka/admin.rb +245 -0
  15. data/lib/rdkafka/bindings/admin/acls.rb +85 -0
  16. data/lib/rdkafka/bindings/admin/configs.rb +37 -0
  17. data/lib/rdkafka/bindings/admin/list_offsets.rb +26 -0
  18. data/lib/rdkafka/bindings/admin.rb +197 -0
  19. data/lib/rdkafka/bindings/callbacks.rb +100 -0
  20. data/lib/rdkafka/bindings/configuration.rb +50 -0
  21. data/lib/rdkafka/bindings/consumer.rb +83 -0
  22. data/lib/rdkafka/bindings/errors.rb +15 -0
  23. data/lib/rdkafka/bindings/handle.rb +16 -0
  24. data/lib/rdkafka/bindings/messages.rb +28 -0
  25. data/lib/rdkafka/bindings/metadata.rb +14 -0
  26. data/lib/rdkafka/bindings/polling.rb +17 -0
  27. data/lib/rdkafka/bindings/producer.rb +77 -0
  28. data/lib/rdkafka/bindings/structs.rb +62 -0
  29. data/lib/rdkafka/bindings.rb +12 -655
  30. data/lib/rdkafka/callbacks/describe_cluster_handler.rb +36 -0
  31. data/lib/rdkafka/callbacks/describe_consumer_groups_handler.rb +36 -0
  32. data/lib/rdkafka/callbacks/describe_topics_handler.rb +36 -0
  33. data/lib/rdkafka/callbacks.rb +10 -1
  34. data/lib/rdkafka/clients.rb +13 -46
  35. data/lib/rdkafka/consumer/message.rb +6 -9
  36. data/lib/rdkafka/producer/delivery_handle.rb +8 -2
  37. data/lib/rdkafka/producer/delivery_report.rb +51 -1
  38. data/lib/rdkafka/version.rb +3 -3
  39. data/lib/rdkafka.rb +10 -0
  40. data/package-lock.json +9 -9
  41. data/rdkafka.gemspec +1 -1
  42. data/renovate.json +3 -0
  43. metadata +26 -2
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rdkafka
4
+ module Callbacks
5
+ # Handles `RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT` events
6
+ # @private
7
+ class DescribeClusterHandler < BaseHandler
8
+ class << self
9
+ # Resolves the describe cluster handle from its result event
10
+ # @param event_ptr [FFI::Pointer] pointer to the event
11
+ # @return [void]
12
+ def call(event_ptr)
13
+ result_ptr = Rdkafka::Bindings.rd_kafka_event_DescribeCluster_result(event_ptr)
14
+ handle_ptr = Rdkafka::Bindings.rd_kafka_event_opaque(event_ptr)
15
+
16
+ return unless (handle = Rdkafka::Admin::DescribeClusterHandle.remove(handle_ptr.address))
17
+
18
+ return if resolve_operation_error(event_ptr, handle)
19
+
20
+ handle[:response] = Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
21
+
22
+ # Parsing must copy everything out of event-owned memory before the event is destroyed.
23
+ # An exception here is captured and re-raised on the waiting thread, since it cannot
24
+ # unwind through librdkafka native frames.
25
+ handle.result = begin
26
+ Rdkafka::Admin::DescribeClusterReport.new(result_ptr)
27
+ rescue => e
28
+ e
29
+ end
30
+
31
+ handle.unlock
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rdkafka
4
+ module Callbacks
5
+ # Handles `RD_KAFKA_EVENT_DESCRIBECONSUMERGROUPS_RESULT` events
6
+ # @private
7
+ class DescribeConsumerGroupsHandler < BaseHandler
8
+ class << self
9
+ # Resolves the describe-consumer-groups handle from its result event
10
+ # @param event_ptr [FFI::Pointer] pointer to the event
11
+ # @return [void]
12
+ def call(event_ptr)
13
+ result_ptr = Rdkafka::Bindings.rd_kafka_event_DescribeConsumerGroups_result(event_ptr)
14
+ handle_ptr = Rdkafka::Bindings.rd_kafka_event_opaque(event_ptr)
15
+
16
+ return unless (handle = Rdkafka::Admin::DescribeConsumerGroupsHandle.remove(handle_ptr.address))
17
+
18
+ return if resolve_operation_error(event_ptr, handle)
19
+
20
+ handle[:response] = Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
21
+
22
+ # Parsing must copy everything out of event-owned memory before the event is destroyed.
23
+ # An exception here is captured and re-raised on the waiting thread, since it cannot
24
+ # unwind through librdkafka native frames.
25
+ handle.result = begin
26
+ Rdkafka::Admin::DescribeConsumerGroupsReport.new(result_ptr)
27
+ rescue => e
28
+ e
29
+ end
30
+
31
+ handle.unlock
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rdkafka
4
+ module Callbacks
5
+ # Handles `RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT` events
6
+ # @private
7
+ class DescribeTopicsHandler < BaseHandler
8
+ class << self
9
+ # Resolves the describe topics handle from its result event
10
+ # @param event_ptr [FFI::Pointer] pointer to the event
11
+ # @return [void]
12
+ def call(event_ptr)
13
+ result_ptr = Rdkafka::Bindings.rd_kafka_event_DescribeTopics_result(event_ptr)
14
+ handle_ptr = Rdkafka::Bindings.rd_kafka_event_opaque(event_ptr)
15
+
16
+ return unless (handle = Rdkafka::Admin::DescribeTopicsHandle.remove(handle_ptr.address))
17
+
18
+ return if resolve_operation_error(event_ptr, handle)
19
+
20
+ handle[:response] = Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
21
+
22
+ # Parsing must copy everything out of event-owned memory before the event is destroyed.
23
+ # An exception here is captured and re-raised on the waiting thread, since it cannot
24
+ # unwind through librdkafka native frames.
25
+ handle.result = begin
26
+ Rdkafka::Admin::DescribeTopicsReport.new(result_ptr)
27
+ rescue => e
28
+ e
29
+ end
30
+
31
+ handle.unlock
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -219,6 +219,9 @@ module Rdkafka
219
219
  when Rdkafka::Bindings::RD_KAFKA_EVENT_INCREMENTALALTERCONFIGS_RESULT then IncrementalAlterConfigsHandler
220
220
  when Rdkafka::Bindings::RD_KAFKA_EVENT_LISTOFFSETS_RESULT then ListOffsetsHandler
221
221
  when Rdkafka::Bindings::RD_KAFKA_EVENT_LISTCONSUMERGROUPS_RESULT then ListConsumerGroupsHandler
222
+ when Rdkafka::Bindings::RD_KAFKA_EVENT_DESCRIBECONSUMERGROUPS_RESULT then DescribeConsumerGroupsHandler
223
+ when Rdkafka::Bindings::RD_KAFKA_EVENT_DESCRIBECLUSTER_RESULT then DescribeClusterHandler
224
+ when Rdkafka::Bindings::RD_KAFKA_EVENT_DESCRIBETOPICS_RESULT then DescribeTopicsHandler
222
225
  end
223
226
 
224
227
  handler&.call(event_ptr)
@@ -247,6 +250,9 @@ module Rdkafka
247
250
  delivery_handle[:response] = message[:err]
248
251
  delivery_handle[:partition] = message[:partition]
249
252
  delivery_handle[:offset] = message[:offset]
253
+ delivery_handle[:status] = Rdkafka::Bindings.rd_kafka_message_status(message_ptr)
254
+ delivery_handle[:latency] = Rdkafka::Bindings.rd_kafka_message_latency(message_ptr)
255
+ delivery_handle[:broker_id] = Rdkafka::Bindings.rd_kafka_message_broker_id(message_ptr)
250
256
  # The topic is not stored on the handle here: it is already set as the handle's
251
257
  # `topic` Ruby attribute during produce, which spares a native string copy that
252
258
  # would otherwise be allocated and retained for every message.
@@ -260,7 +266,10 @@ module Rdkafka
260
266
  message[:offset],
261
267
  topic_name,
262
268
  message[:err],
263
- delivery_handle.label
269
+ delivery_handle.label,
270
+ status: delivery_handle[:status],
271
+ latency: delivery_handle[:latency],
272
+ broker_id: delivery_handle[:broker_id]
264
273
  ),
265
274
  delivery_handle
266
275
  )
@@ -4,22 +4,10 @@ module Rdkafka
4
4
  # Tracks live public clients so they can be closed before Ruby begins forced finalization.
5
5
  # @private
6
6
  module Clients
7
- # Ruby rewrote `ObjectSpace::WeakMap` in 3.3. On 3.2 and earlier its `[]` can hand back a
8
- # foreign or already-freed object for a key, which raises `NoMethodError` or segfaults the VM
9
- # the moment the value is touched. Track weakly only where that is safe and fall back to a
10
- # strong registry - pruned as clients close - on older Rubies. The strong registry holds an
11
- # open, un-closed client until shutdown, which is exactly when this cleanup needs it anyway.
12
- WEAK_TRACKING = Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3")
13
-
14
7
  @pid = Process.pid
15
8
  @mutex = Mutex.new
16
-
17
- if WEAK_TRACKING
18
- @clients = ObjectSpace::WeakMap.new
19
- @tokens = [].freeze
20
- else
21
- @clients = {}.freeze
22
- end
9
+ @clients = ObjectSpace::WeakMap.new
10
+ @tokens = [].freeze
23
11
 
24
12
  # Registers a successfully constructed client so it can be closed during process shutdown.
25
13
  # @param client [Consumer, Producer, Admin] client to close during process shutdown
@@ -28,21 +16,14 @@ module Rdkafka
28
16
  reset_after_fork
29
17
 
30
18
  @mutex.synchronize do
31
- if WEAK_TRACKING
32
- live_clients
33
-
34
- # The strongly-held token is the key and the client is the weak value, so registering a
35
- # client never keeps it alive. Enumerating weak keys can expose reclaimed slots, so we
36
- # look the value up by token instead.
37
- token = Object.new
38
- @clients[token] = client
39
- @tokens = (@tokens + [token]).freeze
40
- else
41
- # Strong references, so drop clients that have already been closed to bound growth.
42
- live = @clients.reject { |_id, existing| existing.closed? }
43
- live[client.object_id] = client
44
- @clients = live.freeze
45
- end
19
+ live_clients
20
+
21
+ # The strongly-held token is the key and the client is the weak value, so registering a
22
+ # client never keeps it alive. Enumerating weak keys can expose reclaimed slots, so we
23
+ # look the value up by token instead.
24
+ token = Object.new
25
+ @clients[token] = client
26
+ @tokens = (@tokens + [token]).freeze
46
27
  end
47
28
 
48
29
  client
@@ -54,7 +35,7 @@ module Rdkafka
54
35
  def self.close_all
55
36
  return unless @pid == Process.pid
56
37
 
57
- clients = @mutex.synchronize { current_clients }
38
+ clients = @mutex.synchronize { live_clients }
58
39
  first_error = nil
59
40
 
60
41
  clients.each do |client|
@@ -66,16 +47,7 @@ module Rdkafka
66
47
  raise first_error if first_error
67
48
  end
68
49
 
69
- # Returns the currently registered live clients.
70
- # @return [Array<Consumer, Producer, Admin>] live clients
71
- # @private
72
- def self.current_clients
73
- WEAK_TRACKING ? live_clients : @clients.values
74
- end
75
- private_class_method :current_clients
76
-
77
50
  # Returns the live clients and releases tokens whose clients have been collected.
78
- # Weak-tracking Rubies only.
79
51
  # @return [Array<Consumer, Producer, Admin>] live clients
80
52
  # @private
81
53
  def self.live_clients
@@ -99,13 +71,8 @@ module Rdkafka
99
71
  def self.reset_after_fork
100
72
  return if @pid == Process.pid
101
73
 
102
- if WEAK_TRACKING
103
- @clients = ObjectSpace::WeakMap.new
104
- @tokens = [].freeze
105
- else
106
- @clients = {}.freeze
107
- end
108
-
74
+ @clients = ObjectSpace::WeakMap.new
75
+ @tokens = [].freeze
109
76
  @pid = Process.pid
110
77
  @mutex = Mutex.new
111
78
  end
@@ -35,19 +35,16 @@ module Rdkafka
35
35
  # @param native_message [Rdkafka::Bindings::Message] native message struct from librdkafka
36
36
  def initialize(native_message)
37
37
  # Set topic
38
- unless native_message[:rkt].null?
39
- @topic = Rdkafka::Bindings.rd_kafka_topic_name(native_message[:rkt])
40
- end
38
+ rkt = native_message[:rkt]
39
+ @topic = Rdkafka::Bindings.rd_kafka_topic_name(rkt) unless rkt.null?
41
40
  # Set partition
42
41
  @partition = native_message[:partition]
43
42
  # Set payload
44
- unless native_message[:payload].null?
45
- @payload = native_message[:payload].read_string(native_message[:len])
46
- end
43
+ payload = native_message[:payload]
44
+ @payload = payload.read_string(native_message[:len]) unless payload.null?
47
45
  # Set key
48
- unless native_message[:key].null?
49
- @key = native_message[:key].read_string(native_message[:key_len])
50
- end
46
+ key = native_message[:key]
47
+ @key = key.read_string(native_message[:key_len]) unless key.null?
51
48
  # Set offset
52
49
  @offset = native_message[:offset]
53
50
  # Set timestamp
@@ -7,7 +7,10 @@ module Rdkafka
7
7
  layout :pending, :bool,
8
8
  :response, :int,
9
9
  :partition, :int,
10
- :offset, :int64
10
+ :offset, :int64,
11
+ :status, :int,
12
+ :latency, :int64,
13
+ :broker_id, :int32
11
14
 
12
15
  # @return [Object, nil] label set during message production or nil by default
13
16
  attr_accessor :label
@@ -31,7 +34,10 @@ module Rdkafka
31
34
  # we should not return it
32
35
  topic,
33
36
  (self[:response] != 0) ? RdkafkaError.new(self[:response]) : nil,
34
- label
37
+ label,
38
+ status: self[:status],
39
+ latency: self[:latency],
40
+ broker_id: self[:broker_id]
35
41
  )
36
42
  end
37
43
  end
@@ -25,6 +25,26 @@ module Rdkafka
25
25
  # @return [Object, nil] label set during message production or nil by default
26
26
  attr_reader :label
27
27
 
28
+ # Persistence status of the message, one of `Bindings::RD_KAFKA_MSG_STATUS_*`:
29
+ # - `RD_KAFKA_MSG_STATUS_NOT_PERSISTED` - the message was not written to the broker. A retry
30
+ # risks reordering, but not a duplicate.
31
+ # - `RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED` - the message may have been written (e.g. the
32
+ # request timed out before an ack). A retry risks reordering and a duplicate.
33
+ # - `RD_KAFKA_MSG_STATUS_PERSISTED` - the broker acknowledged the message. Trust this only
34
+ # with `acks=all`.
35
+ # `nil` when the report was not built from a delivery callback.
36
+ # @return [Integer, nil]
37
+ attr_reader :status
38
+
39
+ # Time from the `produce` call until the delivery report, in microseconds, or `nil` when
40
+ # not available
41
+ # @return [Integer, nil]
42
+ attr_reader :latency
43
+
44
+ # Id of the broker the message was produced to, or `nil` when not known
45
+ # @return [Integer, nil]
46
+ attr_reader :broker_id
47
+
28
48
  # We alias the `#topic_name` under `#topic` to make this consistent with `Consumer::Message`
29
49
  # where the topic name is under `#topic` method. That way we have a consistent name that
30
50
  # is present in both places
@@ -38,12 +58,42 @@ module Rdkafka
38
58
  # @param topic_name [String, nil] topic name
39
59
  # @param error [Integer, nil] error code if any
40
60
  # @param label [Object, nil] user-defined label
41
- def initialize(partition, offset, topic_name = nil, error = nil, label = nil)
61
+ # @param status [Integer, nil] `Bindings::RD_KAFKA_MSG_STATUS_*` persistence status
62
+ # @param latency [Integer, nil] produce latency in microseconds, negative when not available
63
+ # @param broker_id [Integer, nil] broker id, negative when not known
64
+ def initialize(
65
+ partition,
66
+ offset,
67
+ topic_name = nil,
68
+ error = nil,
69
+ label = nil,
70
+ status: nil,
71
+ latency: nil,
72
+ broker_id: nil
73
+ )
42
74
  @partition = partition
43
75
  @offset = offset
44
76
  @topic_name = topic_name
45
77
  @error = error
46
78
  @label = label
79
+ @status = status
80
+ @latency = (latency.nil? || latency.negative?) ? nil : latency
81
+ @broker_id = (broker_id.nil? || broker_id.negative?) ? nil : broker_id
82
+ end
83
+
84
+ # @return [Boolean] true when the broker acknowledged the message
85
+ def persisted?
86
+ status == Bindings::RD_KAFKA_MSG_STATUS_PERSISTED
87
+ end
88
+
89
+ # @return [Boolean] true when the message may have been written, so a retry may duplicate it
90
+ def possibly_persisted?
91
+ status == Bindings::RD_KAFKA_MSG_STATUS_POSSIBLY_PERSISTED
92
+ end
93
+
94
+ # @return [Boolean] true when the message was not written, so a retry does not duplicate it
95
+ def not_persisted?
96
+ status == Bindings::RD_KAFKA_MSG_STATUS_NOT_PERSISTED
47
97
  end
48
98
  end
49
99
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  module Rdkafka
4
4
  # Current rdkafka-ruby gem version
5
- VERSION = "0.30.0"
5
+ VERSION = "0.31.0"
6
6
  # Target librdkafka version to be used
7
- LIBRDKAFKA_VERSION = "2.15.0"
7
+ LIBRDKAFKA_VERSION = "2.15.1"
8
8
  # SHA256 hash of the librdkafka source tarball for verification
9
- LIBRDKAFKA_SOURCE_SHA256 = "259015220cdca708afe838b5aa79ebf1a5fb710fb4179cf918d390aed85d5dbc"
9
+ LIBRDKAFKA_SOURCE_SHA256 = "23c8575c7d1ced07246cb9cf200c11325b72201fd4134a02414ca869fbdd8ed3"
10
10
  end
data/lib/rdkafka.rb CHANGED
@@ -41,6 +41,13 @@ require "rdkafka/admin/list_offsets_handle"
41
41
  require "rdkafka/admin/list_offsets_report"
42
42
  require "rdkafka/admin/list_consumer_groups_handle"
43
43
  require "rdkafka/admin/list_consumer_groups_report"
44
+ require "rdkafka/admin/describe_result_parsing"
45
+ require "rdkafka/admin/describe_cluster_handle"
46
+ require "rdkafka/admin/describe_cluster_report"
47
+ require "rdkafka/admin/describe_topics_handle"
48
+ require "rdkafka/admin/describe_topics_report"
49
+ require "rdkafka/admin/describe_consumer_groups_handle"
50
+ require "rdkafka/admin/describe_consumer_groups_report"
44
51
  require "rdkafka/admin/acl_binding_result"
45
52
  require "rdkafka/admin/config_binding_result"
46
53
  require "rdkafka/admin/config_resource_binding_result"
@@ -61,6 +68,9 @@ require "rdkafka/callbacks/describe_configs_handler"
61
68
  require "rdkafka/callbacks/incremental_alter_configs_handler"
62
69
  require "rdkafka/callbacks/list_offsets_handler"
63
70
  require "rdkafka/callbacks/list_consumer_groups_handler"
71
+ require "rdkafka/callbacks/describe_cluster_handler"
72
+ require "rdkafka/callbacks/describe_topics_handler"
73
+ require "rdkafka/callbacks/describe_consumer_groups_handler"
64
74
  require "rdkafka/config"
65
75
  require "rdkafka/consumer"
66
76
  require "rdkafka/consumer/headers"
data/package-lock.json CHANGED
@@ -103,9 +103,9 @@
103
103
  }
104
104
  },
105
105
  "node_modules/fastq": {
106
- "version": "1.20.2",
107
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.2.tgz",
108
- "integrity": "sha512-UpGiiODyCGprM8EPP6JodP6jC9Rws6TCuiDOD+nn0CJhR8guI3g/ozo4ugL0vJ+Yz1UtJuuRPqvQuybVOF1VQA==",
106
+ "version": "1.20.3",
107
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz",
108
+ "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==",
109
109
  "dev": true,
110
110
  "license": "ISC",
111
111
  "dependencies": {
@@ -286,9 +286,9 @@
286
286
  }
287
287
  },
288
288
  "node_modules/smol-toml": {
289
- "version": "1.8.0",
290
- "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz",
291
- "integrity": "sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==",
289
+ "version": "1.9.0",
290
+ "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.0.tgz",
291
+ "integrity": "sha512-hpd+HLON7HdZXqYchMM/+LaTTbdK0AU3NngIJ4KVyWbY9bfQqdL9cD+4yf6dUoU2Ap4VsU0JkQi6FxAI1B2mXQ==",
292
292
  "dev": true,
293
293
  "license": "BSD-3-Clause",
294
294
  "engines": {
@@ -312,9 +312,9 @@
312
312
  }
313
313
  },
314
314
  "node_modules/yaml": {
315
- "version": "2.9.0",
316
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
317
- "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
315
+ "version": "2.9.1",
316
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz",
317
+ "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==",
318
318
  "dev": true,
319
319
  "license": "ISC",
320
320
  "bin": {
data/rdkafka.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
12
12
  gem.name = "rdkafka"
13
13
  gem.require_paths = ["lib"]
14
14
  gem.version = Rdkafka::VERSION
15
- gem.required_ruby_version = ">= 3.2"
15
+ gem.required_ruby_version = ">= 3.3"
16
16
 
17
17
  files = `git ls-files`.split($\)
18
18
  files = files.reject do |file|
data/renovate.json CHANGED
@@ -1,4 +1,7 @@
1
1
  {
2
+ "bundler": {
3
+ "managerFilePatterns": ["/(^|/)Gemfile\\.lint$/"]
4
+ },
2
5
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
6
  "extends": [
4
7
  "config:recommended"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.31.0
5
5
  platform: aarch64-linux-gnu
6
6
  authors:
7
7
  - Thijs Cadier
@@ -121,8 +121,15 @@ files:
121
121
  - lib/rdkafka/admin/delete_topic_report.rb
122
122
  - lib/rdkafka/admin/describe_acl_handle.rb
123
123
  - lib/rdkafka/admin/describe_acl_report.rb
124
+ - lib/rdkafka/admin/describe_cluster_handle.rb
125
+ - lib/rdkafka/admin/describe_cluster_report.rb
124
126
  - lib/rdkafka/admin/describe_configs_handle.rb
125
127
  - lib/rdkafka/admin/describe_configs_report.rb
128
+ - lib/rdkafka/admin/describe_consumer_groups_handle.rb
129
+ - lib/rdkafka/admin/describe_consumer_groups_report.rb
130
+ - lib/rdkafka/admin/describe_result_parsing.rb
131
+ - lib/rdkafka/admin/describe_topics_handle.rb
132
+ - lib/rdkafka/admin/describe_topics_report.rb
126
133
  - lib/rdkafka/admin/incremental_alter_configs_handle.rb
127
134
  - lib/rdkafka/admin/incremental_alter_configs_report.rb
128
135
  - lib/rdkafka/admin/list_consumer_groups_handle.rb
@@ -130,6 +137,20 @@ files:
130
137
  - lib/rdkafka/admin/list_offsets_handle.rb
131
138
  - lib/rdkafka/admin/list_offsets_report.rb
132
139
  - lib/rdkafka/bindings.rb
140
+ - lib/rdkafka/bindings/admin.rb
141
+ - lib/rdkafka/bindings/admin/acls.rb
142
+ - lib/rdkafka/bindings/admin/configs.rb
143
+ - lib/rdkafka/bindings/admin/list_offsets.rb
144
+ - lib/rdkafka/bindings/callbacks.rb
145
+ - lib/rdkafka/bindings/configuration.rb
146
+ - lib/rdkafka/bindings/consumer.rb
147
+ - lib/rdkafka/bindings/errors.rb
148
+ - lib/rdkafka/bindings/handle.rb
149
+ - lib/rdkafka/bindings/messages.rb
150
+ - lib/rdkafka/bindings/metadata.rb
151
+ - lib/rdkafka/bindings/polling.rb
152
+ - lib/rdkafka/bindings/producer.rb
153
+ - lib/rdkafka/bindings/structs.rb
133
154
  - lib/rdkafka/callbacks.rb
134
155
  - lib/rdkafka/callbacks/alter_consumer_group_offsets_handler.rb
135
156
  - lib/rdkafka/callbacks/base_handler.rb
@@ -142,7 +163,10 @@ files:
142
163
  - lib/rdkafka/callbacks/delete_records_handler.rb
143
164
  - lib/rdkafka/callbacks/delete_topic_handler.rb
144
165
  - lib/rdkafka/callbacks/describe_acl_handler.rb
166
+ - lib/rdkafka/callbacks/describe_cluster_handler.rb
145
167
  - lib/rdkafka/callbacks/describe_configs_handler.rb
168
+ - lib/rdkafka/callbacks/describe_consumer_groups_handler.rb
169
+ - lib/rdkafka/callbacks/describe_topics_handler.rb
146
170
  - lib/rdkafka/callbacks/incremental_alter_configs_handler.rb
147
171
  - lib/rdkafka/callbacks/list_consumer_groups_handler.rb
148
172
  - lib/rdkafka/callbacks/list_offsets_handler.rb
@@ -188,7 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
212
  requirements:
189
213
  - - ">="
190
214
  - !ruby/object:Gem::Version
191
- version: '3.2'
215
+ version: '3.3'
192
216
  required_rubygems_version: !ruby/object:Gem::Requirement
193
217
  requirements:
194
218
  - - ">="