karafka-rdkafka 0.30.2-aarch64-linux-gnu → 0.32.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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +100 -36
  3. data/README.md +3 -1
  4. data/docker-compose-ssl.yml +1 -0
  5. data/docker-compose.yml +1 -0
  6. data/ext/librdkafka.so +0 -0
  7. data/karafka-rdkafka.gemspec +5 -4
  8. data/lib/rdkafka/admin/acl_binding_result.rb +4 -16
  9. data/lib/rdkafka/admin/alter_consumer_group_offsets_report.rb +2 -2
  10. data/lib/rdkafka/admin/create_acl_report.rb +1 -3
  11. data/lib/rdkafka/admin/create_topic_report.rb +2 -6
  12. data/lib/rdkafka/admin/delete_consumer_group_offsets_report.rb +2 -2
  13. data/lib/rdkafka/admin/delete_groups_report.rb +2 -6
  14. data/lib/rdkafka/admin/delete_topic_report.rb +2 -6
  15. data/lib/rdkafka/admin/describe_cluster_handle.rb +31 -0
  16. data/lib/rdkafka/admin/describe_cluster_report.rb +51 -0
  17. data/lib/rdkafka/admin/describe_consumer_groups_handle.rb +31 -0
  18. data/lib/rdkafka/admin/describe_consumer_groups_report.rb +151 -0
  19. data/lib/rdkafka/admin/describe_result_parsing.rb +47 -0
  20. data/lib/rdkafka/admin/describe_topics_handle.rb +31 -0
  21. data/lib/rdkafka/admin/describe_topics_report.rb +118 -0
  22. data/lib/rdkafka/admin/list_consumer_group_offsets_handle.rb +31 -0
  23. data/lib/rdkafka/admin/list_consumer_group_offsets_report.rb +52 -0
  24. data/lib/rdkafka/admin.rb +424 -9
  25. data/lib/rdkafka/bindings/admin/acls.rb +85 -0
  26. data/lib/rdkafka/bindings/admin/configs.rb +37 -0
  27. data/lib/rdkafka/bindings/admin/list_offsets.rb +26 -0
  28. data/lib/rdkafka/bindings/admin.rb +211 -0
  29. data/lib/rdkafka/bindings/callbacks.rb +155 -0
  30. data/lib/rdkafka/bindings/configuration.rb +50 -0
  31. data/lib/rdkafka/bindings/consumer.rb +125 -0
  32. data/lib/rdkafka/bindings/errors.rb +17 -0
  33. data/lib/rdkafka/bindings/handle.rb +16 -0
  34. data/lib/rdkafka/bindings/messages.rb +28 -0
  35. data/lib/rdkafka/bindings/metadata.rb +17 -0
  36. data/lib/rdkafka/bindings/polling.rb +17 -0
  37. data/lib/rdkafka/bindings/producer.rb +82 -0
  38. data/lib/rdkafka/bindings/share_consumer.rb +67 -0
  39. data/lib/rdkafka/bindings/structs.rb +62 -0
  40. data/lib/rdkafka/bindings.rb +16 -775
  41. data/lib/rdkafka/callbacks/describe_cluster_handler.rb +36 -0
  42. data/lib/rdkafka/callbacks/describe_consumer_groups_handler.rb +36 -0
  43. data/lib/rdkafka/callbacks/describe_topics_handler.rb +36 -0
  44. data/lib/rdkafka/callbacks/list_consumer_group_offsets_handler.rb +62 -0
  45. data/lib/rdkafka/callbacks.rb +15 -7
  46. data/lib/rdkafka/clients.rb +13 -46
  47. data/lib/rdkafka/config.rb +70 -0
  48. data/lib/rdkafka/consumer/allocator.rb +0 -2
  49. data/lib/rdkafka/consumer/message.rb +6 -9
  50. data/lib/rdkafka/consumer/topic_partition_list.rb +7 -7
  51. data/lib/rdkafka/consumer.rb +76 -36
  52. data/lib/rdkafka/defaults.rb +6 -4
  53. data/lib/rdkafka/native_kafka.rb +45 -31
  54. data/lib/rdkafka/producer/delivery_handle.rb +18 -16
  55. data/lib/rdkafka/producer/delivery_report.rb +51 -1
  56. data/lib/rdkafka/producer/partitions_count_cache.rb +109 -26
  57. data/lib/rdkafka/producer.rb +141 -71
  58. data/lib/rdkafka/share_consumer.rb +70 -34
  59. data/lib/rdkafka/version.rb +3 -3
  60. data/lib/rdkafka.rb +14 -1
  61. data/package-lock.json +9 -9
  62. data/renovate.json +7 -0
  63. metadata +31 -31
@@ -96,13 +96,17 @@ module Rdkafka
96
96
  # and after close or in a forked child, where the native handle must not be touched.
97
97
  # librdkafka assigns the name at creation, so no broker connection is required.
98
98
  @name = Rdkafka::Bindings.rd_kafka_name(Rdkafka::Bindings::NativeShareConsumer.new(native)[:rkshare_rk])
99
- # Guards handle teardown against in-flight calls: increments happen under this mutex and
100
- # close holds it while draining and destroying (mirrors NativeKafka's approach)
99
+ # Guards handle teardown against in-flight calls: the operations in progress counter
100
+ # changes only under this mutex, and close holds it while destroying (mirrors NativeKafka)
101
101
  @access_mutex = Mutex.new
102
- # Separate mutex for decrements so a blocked close (holding @access_mutex) cannot
103
- # deadlock with an operation trying to finish
104
- @decrement_mutex = Mutex.new
105
- # Number of calls currently using the native handle
102
+ # Signalled when `#close` ends and, only while `#close` waits, when the operations in
103
+ # progress counter reaches zero. `#close` waits on it with `@access_mutex` released, so calls
104
+ # that started before it can still decrement the counter.
105
+ @operations_done = ConditionVariable.new
106
+ # Set while `#close` runs, so no new call starts until it ends
107
+ @closing = false
108
+ # Number of calls currently using the native handle, changed only under `@access_mutex`, so
109
+ # no update is lost on Rubies without a GVL (JRuby)
106
110
  @operations_in_progress = 0
107
111
 
108
112
  ObjectSpace.define_finalizer(self, self.class.finalizer(@state))
@@ -167,6 +171,12 @@ module Rdkafka
167
171
 
168
172
  # Unsubscribes from all subscribed topics and leaves the share group assignment.
169
173
  #
174
+ # Closes the share sessions like {#close} does: acknowledgements made so far (every delivered
175
+ # record in implicit mode) are committed, and records that were delivered but not
176
+ # acknowledged, or acquired by a fetch still in flight, are released to the other members
177
+ # right away. Blocks until the sessions are closed, which takes up to `fetch.wait.max.ms`
178
+ # when a fetch is in flight.
179
+ #
170
180
  # @return [nil]
171
181
  # @raise [RdkafkaError] When unsubscribing fails
172
182
  def unsubscribe
@@ -535,31 +545,15 @@ module Rdkafka
535
545
  return if closed?
536
546
 
537
547
  @access_mutex.synchronize do
538
- # Wait for in-flight calls on other threads to finish using the handle. New calls block
539
- # on the mutex above while we hold it.
540
- sleep(Defaults::NATIVE_KAFKA_SYNCHRONIZE_SLEEP_INTERVAL_MS / 1_000.0) until @operations_in_progress.zero?
541
-
542
- native = @state.native
548
+ @operations_done.wait(@access_mutex) while @closing
549
+ @closing = true
543
550
 
544
- # Lost the race against a concurrent close that already finished
545
- return if native.nil?
546
-
547
- # librdkafka leaves the instance intact when close/destroy fail, and validate! raises
548
- # before any reference (or the finalizer) is dropped, so the caller can retry close
549
- # and the handle cannot leak silently.
550
- #
551
- # The close step is skipped when librdkafka already considers the consumer closed
552
- # (e.g. a prior close attempt succeeded but its destroy failed and was retried).
553
- if Rdkafka::Bindings.rd_kafka_share_consumer_closed(native).zero?
554
- Rdkafka::RdkafkaError.validate!(Rdkafka::Bindings.rd_kafka_share_consumer_close(native))
551
+ begin
552
+ close_native
553
+ ensure
554
+ @closing = false
555
+ @operations_done.broadcast
555
556
  end
556
-
557
- Rdkafka::RdkafkaError.validate!(Rdkafka::Bindings.rd_kafka_share_destroy(native))
558
-
559
- # The native handle is gone only now; drop all references and the finalizer
560
- ObjectSpace.undefine_finalizer(self)
561
- @state.native = nil
562
- @state.ack_callback = nil
563
557
  end
564
558
 
565
559
  nil
@@ -567,10 +561,46 @@ module Rdkafka
567
561
 
568
562
  private
569
563
 
564
+ # Destroys the native handle once no other thread uses it. Runs under `@access_mutex`, with
565
+ # `@closing` set so no new call starts.
566
+ #
567
+ # @return [nil]
568
+ # @raise [RdkafkaError] When closing or destroying reported an error
569
+ def close_native
570
+ # Wait for in-flight calls on other threads to finish using the handle. The wait releases
571
+ # `@access_mutex`, so those calls can decrement the counter, while `@closing` keeps new
572
+ # calls out.
573
+ @operations_done.wait(@access_mutex) until @operations_in_progress.zero?
574
+
575
+ native = @state.native
576
+
577
+ # Lost the race against a concurrent close that already finished
578
+ return if native.nil?
579
+
580
+ # librdkafka leaves the instance intact when close/destroy fail, and validate! raises
581
+ # before any reference (or the finalizer) is dropped, so the caller can retry close
582
+ # and the handle cannot leak silently.
583
+ #
584
+ # The close step is skipped when librdkafka already considers the consumer closed
585
+ # (e.g. a prior close attempt succeeded but its destroy failed and was retried).
586
+ if Rdkafka::Bindings.rd_kafka_share_consumer_closed(native).zero?
587
+ Rdkafka::RdkafkaError.validate!(Rdkafka::Bindings.rd_kafka_share_consumer_close(native))
588
+ end
589
+
590
+ Rdkafka::RdkafkaError.validate!(Rdkafka::Bindings.rd_kafka_share_destroy(native))
591
+
592
+ # The native handle is gone only now; drop all references and the finalizer
593
+ ObjectSpace.undefine_finalizer(self)
594
+ @state.native = nil
595
+ @state.ack_callback = nil
596
+
597
+ nil
598
+ end
599
+
570
600
  # Executes a block with the native share handle while tracking the call so {#close} cannot
571
- # tear the handle down mid-call from another thread. Increments happen under the access
572
- # mutex that close holds for the whole teardown, so once close is draining no new call can
573
- # slip in; librdkafka's own single-owner gate still rejects genuinely concurrent API calls.
601
+ # tear the handle down mid-call from another thread. New calls wait while close runs, so once
602
+ # close is draining no new call can slip in; librdkafka's own single-owner gate still rejects
603
+ # genuinely concurrent API calls.
574
604
  #
575
605
  # @param method [Symbol] public method name, used for the ClosedConsumerError
576
606
  # @yield [FFI::Pointer] the native share handle
@@ -580,7 +610,10 @@ module Rdkafka
580
610
  # (the only internal holder) - the handle is going away, so reject before tracking
581
611
  raise Rdkafka::ClosedConsumerError.new(method) if @access_mutex.owned?
582
612
 
583
- @access_mutex.synchronize { @operations_in_progress += 1 }
613
+ @access_mutex.synchronize do
614
+ @operations_done.wait(@access_mutex) while @closing
615
+ @operations_in_progress += 1
616
+ end
584
617
 
585
618
  begin
586
619
  native = @state.native
@@ -591,7 +624,10 @@ module Rdkafka
591
624
 
592
625
  yield(native)
593
626
  ensure
594
- @decrement_mutex.synchronize { @operations_in_progress -= 1 }
627
+ @access_mutex.synchronize do
628
+ @operations_in_progress -= 1
629
+ @operations_done.broadcast if @closing && @operations_in_progress.zero?
630
+ end
595
631
  end
596
632
  end
597
633
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  module Rdkafka
4
4
  # Current rdkafka-ruby gem version
5
- VERSION = "0.30.2"
5
+ VERSION = "0.32.0"
6
6
  # Target librdkafka version to be used
7
- LIBRDKAFKA_VERSION = "2.15.1"
7
+ LIBRDKAFKA_VERSION = "2.16.0"
8
8
  # SHA256 hash of the librdkafka source tarball for verification
9
- LIBRDKAFKA_SOURCE_SHA256 = "23c8575c7d1ced07246cb9cf200c11325b72201fd4134a02414ca869fbdd8ed3"
9
+ LIBRDKAFKA_SOURCE_SHA256 = "e6b61de61d3282879a88e4ee3d9f634a8b05bf78a9198dfc25c4820c0c9ed231"
10
10
  end
data/lib/rdkafka.rb CHANGED
@@ -15,6 +15,8 @@ require "rdkafka/abstract_handle"
15
15
  require "rdkafka/admin"
16
16
  require "rdkafka/admin/alter_consumer_group_offsets_handle"
17
17
  require "rdkafka/admin/alter_consumer_group_offsets_report"
18
+ require "rdkafka/admin/list_consumer_group_offsets_handle"
19
+ require "rdkafka/admin/list_consumer_group_offsets_report"
18
20
  require "rdkafka/admin/delete_consumer_group_offsets_handle"
19
21
  require "rdkafka/admin/delete_consumer_group_offsets_report"
20
22
  require "rdkafka/admin/create_topic_handle"
@@ -41,9 +43,17 @@ require "rdkafka/admin/list_offsets_handle"
41
43
  require "rdkafka/admin/list_offsets_report"
42
44
  require "rdkafka/admin/list_consumer_groups_handle"
43
45
  require "rdkafka/admin/list_consumer_groups_report"
46
+ require "rdkafka/admin/describe_result_parsing"
47
+ require "rdkafka/admin/describe_cluster_handle"
48
+ require "rdkafka/admin/describe_cluster_report"
49
+ require "rdkafka/admin/describe_topics_handle"
50
+ require "rdkafka/admin/describe_topics_report"
51
+ require "rdkafka/admin/describe_consumer_groups_handle"
52
+ require "rdkafka/admin/describe_consumer_groups_report"
44
53
  require "rdkafka/admin/acl_binding_result"
45
54
  require "rdkafka/admin/config_binding_result"
46
55
  require "rdkafka/admin/config_resource_binding_result"
56
+ require "rdkafka/error"
47
57
  require "rdkafka/bindings"
48
58
  require "rdkafka/callbacks"
49
59
  require "rdkafka/callbacks/base_handler"
@@ -51,6 +61,7 @@ require "rdkafka/callbacks/create_topic_handler"
51
61
  require "rdkafka/callbacks/delete_topic_handler"
52
62
  require "rdkafka/callbacks/create_partitions_handler"
53
63
  require "rdkafka/callbacks/alter_consumer_group_offsets_handler"
64
+ require "rdkafka/callbacks/list_consumer_group_offsets_handler"
54
65
  require "rdkafka/callbacks/delete_consumer_group_offsets_handler"
55
66
  require "rdkafka/callbacks/delete_groups_handler"
56
67
  require "rdkafka/callbacks/delete_records_handler"
@@ -61,6 +72,9 @@ require "rdkafka/callbacks/describe_configs_handler"
61
72
  require "rdkafka/callbacks/incremental_alter_configs_handler"
62
73
  require "rdkafka/callbacks/list_offsets_handler"
63
74
  require "rdkafka/callbacks/list_consumer_groups_handler"
75
+ require "rdkafka/callbacks/describe_cluster_handler"
76
+ require "rdkafka/callbacks/describe_topics_handler"
77
+ require "rdkafka/callbacks/describe_consumer_groups_handler"
64
78
  require "rdkafka/config"
65
79
  require "rdkafka/consumer"
66
80
  require "rdkafka/consumer/headers"
@@ -70,7 +84,6 @@ require "rdkafka/consumer/allocator"
70
84
  require "rdkafka/consumer/topic_partition_list"
71
85
  require "rdkafka/share_consumer"
72
86
  require "rdkafka/share_consumer/message"
73
- require "rdkafka/error"
74
87
  require "rdkafka/metadata"
75
88
  require "rdkafka/native_kafka"
76
89
  require "rdkafka/producer/partitions_count_cache"
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.1",
290
+ "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.9.1.tgz",
291
+ "integrity": "sha512-j7WyPdf0CJoutMzMoPLF/bVXHtKZIT9Rb4eGeEbWw8X2t5oirjPgpL+OpaENZrILYaXqYwnVH+qgUwVbl+pUJQ==",
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/renovate.json CHANGED
@@ -97,6 +97,13 @@
97
97
  "ruby/setup-ruby"
98
98
  ],
99
99
  "minimumReleaseAge": "5 days"
100
+ },
101
+ {
102
+ "description": "Keep the ubuntu:22.04 build container of the precompiled gnu libraries; a newer Ubuntu raises their glibc floor",
103
+ "matchDatasources": ["docker"],
104
+ "matchPackageNames": ["ubuntu"],
105
+ "matchFileNames": [".github/workflows/**"],
106
+ "allowedVersions": "/^22\\.04$/"
100
107
  }
101
108
  ],
102
109
  "labels": [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karafka-rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.2
4
+ version: 0.32.0
5
5
  platform: aarch64-linux-gnu
6
6
  authors:
7
7
  - Thijs Cadier
@@ -52,34 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: mini_portile2
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.6'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.6'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">"
74
- - !ruby/object:Gem::Version
75
- version: '12'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">"
81
- - !ruby/object:Gem::Version
82
- version: '12'
83
55
  description: Modern Kafka client library for Ruby based on librdkafka
84
56
  email:
85
57
  - contact@karafka.io
@@ -122,15 +94,39 @@ files:
122
94
  - lib/rdkafka/admin/delete_topic_report.rb
123
95
  - lib/rdkafka/admin/describe_acl_handle.rb
124
96
  - lib/rdkafka/admin/describe_acl_report.rb
97
+ - lib/rdkafka/admin/describe_cluster_handle.rb
98
+ - lib/rdkafka/admin/describe_cluster_report.rb
125
99
  - lib/rdkafka/admin/describe_configs_handle.rb
126
100
  - lib/rdkafka/admin/describe_configs_report.rb
101
+ - lib/rdkafka/admin/describe_consumer_groups_handle.rb
102
+ - lib/rdkafka/admin/describe_consumer_groups_report.rb
103
+ - lib/rdkafka/admin/describe_result_parsing.rb
104
+ - lib/rdkafka/admin/describe_topics_handle.rb
105
+ - lib/rdkafka/admin/describe_topics_report.rb
127
106
  - lib/rdkafka/admin/incremental_alter_configs_handle.rb
128
107
  - lib/rdkafka/admin/incremental_alter_configs_report.rb
108
+ - lib/rdkafka/admin/list_consumer_group_offsets_handle.rb
109
+ - lib/rdkafka/admin/list_consumer_group_offsets_report.rb
129
110
  - lib/rdkafka/admin/list_consumer_groups_handle.rb
130
111
  - lib/rdkafka/admin/list_consumer_groups_report.rb
131
112
  - lib/rdkafka/admin/list_offsets_handle.rb
132
113
  - lib/rdkafka/admin/list_offsets_report.rb
133
114
  - lib/rdkafka/bindings.rb
115
+ - lib/rdkafka/bindings/admin.rb
116
+ - lib/rdkafka/bindings/admin/acls.rb
117
+ - lib/rdkafka/bindings/admin/configs.rb
118
+ - lib/rdkafka/bindings/admin/list_offsets.rb
119
+ - lib/rdkafka/bindings/callbacks.rb
120
+ - lib/rdkafka/bindings/configuration.rb
121
+ - lib/rdkafka/bindings/consumer.rb
122
+ - lib/rdkafka/bindings/errors.rb
123
+ - lib/rdkafka/bindings/handle.rb
124
+ - lib/rdkafka/bindings/messages.rb
125
+ - lib/rdkafka/bindings/metadata.rb
126
+ - lib/rdkafka/bindings/polling.rb
127
+ - lib/rdkafka/bindings/producer.rb
128
+ - lib/rdkafka/bindings/share_consumer.rb
129
+ - lib/rdkafka/bindings/structs.rb
134
130
  - lib/rdkafka/callbacks.rb
135
131
  - lib/rdkafka/callbacks/alter_consumer_group_offsets_handler.rb
136
132
  - lib/rdkafka/callbacks/base_handler.rb
@@ -143,8 +139,12 @@ files:
143
139
  - lib/rdkafka/callbacks/delete_records_handler.rb
144
140
  - lib/rdkafka/callbacks/delete_topic_handler.rb
145
141
  - lib/rdkafka/callbacks/describe_acl_handler.rb
142
+ - lib/rdkafka/callbacks/describe_cluster_handler.rb
146
143
  - lib/rdkafka/callbacks/describe_configs_handler.rb
144
+ - lib/rdkafka/callbacks/describe_consumer_groups_handler.rb
145
+ - lib/rdkafka/callbacks/describe_topics_handler.rb
147
146
  - lib/rdkafka/callbacks/incremental_alter_configs_handler.rb
147
+ - lib/rdkafka/callbacks/list_consumer_group_offsets_handler.rb
148
148
  - lib/rdkafka/callbacks/list_consumer_groups_handler.rb
149
149
  - lib/rdkafka/callbacks/list_offsets_handler.rb
150
150
  - lib/rdkafka/clients.rb
@@ -191,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
- version: '3.2'
194
+ version: '3.3'
195
195
  required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - ">="
@@ -202,5 +202,5 @@ rubygems_version: 4.0.20
202
202
  specification_version: 4
203
203
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
204
204
  It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
205
- and Ruby 2.7+.
205
+ and Ruby 3.3+.
206
206
  test_files: []