rdkafka 0.28.0-aarch64-linux-gnu → 0.29.1-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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +42 -0
  3. data/README.md +3 -2
  4. data/bin/verify_kafka_warnings +5 -0
  5. data/docker-compose-ssl.yml +4 -1
  6. data/docker-compose.yml +4 -1
  7. data/ext/librdkafka.so +0 -0
  8. data/lib/rdkafka/abstract_handle.rb +31 -2
  9. data/lib/rdkafka/admin/config_binding_result.rb +2 -2
  10. data/lib/rdkafka/admin/create_acl_handle.rb +6 -5
  11. data/lib/rdkafka/admin/create_acl_report.rb +2 -1
  12. data/lib/rdkafka/admin/create_partitions_handle.rb +4 -6
  13. data/lib/rdkafka/admin/create_topic_handle.rb +4 -6
  14. data/lib/rdkafka/admin/delete_acl_handle.rb +5 -7
  15. data/lib/rdkafka/admin/delete_groups_handle.rb +4 -6
  16. data/lib/rdkafka/admin/delete_records_handle.rb +31 -0
  17. data/lib/rdkafka/admin/delete_records_report.rb +25 -0
  18. data/lib/rdkafka/admin/delete_topic_handle.rb +4 -6
  19. data/lib/rdkafka/admin/describe_acl_handle.rb +5 -7
  20. data/lib/rdkafka/admin/describe_acl_report.rb +2 -1
  21. data/lib/rdkafka/admin/describe_configs_handle.rb +4 -10
  22. data/lib/rdkafka/admin/describe_configs_report.rb +1 -5
  23. data/lib/rdkafka/admin/incremental_alter_configs_handle.rb +4 -10
  24. data/lib/rdkafka/admin/incremental_alter_configs_report.rb +1 -5
  25. data/lib/rdkafka/admin/list_consumer_groups_handle.rb +31 -0
  26. data/lib/rdkafka/admin/list_consumer_groups_report.rb +83 -0
  27. data/lib/rdkafka/admin/list_offsets_handle.rb +5 -10
  28. data/lib/rdkafka/admin/list_offsets_report.rb +5 -2
  29. data/lib/rdkafka/admin.rb +238 -145
  30. data/lib/rdkafka/bindings.rb +61 -16
  31. data/lib/rdkafka/callbacks/base_handler.rb +62 -0
  32. data/lib/rdkafka/callbacks/create_acl_handler.rb +37 -0
  33. data/lib/rdkafka/callbacks/create_partitions_handler.rb +37 -0
  34. data/lib/rdkafka/callbacks/create_topic_handler.rb +37 -0
  35. data/lib/rdkafka/callbacks/delete_acl_handler.rb +42 -0
  36. data/lib/rdkafka/callbacks/delete_groups_handler.rb +37 -0
  37. data/lib/rdkafka/callbacks/delete_records_handler.rb +38 -0
  38. data/lib/rdkafka/callbacks/delete_topic_handler.rb +37 -0
  39. data/lib/rdkafka/callbacks/describe_acl_handler.rb +35 -0
  40. data/lib/rdkafka/callbacks/describe_configs_handler.rb +42 -0
  41. data/lib/rdkafka/callbacks/incremental_alter_configs_handler.rb +42 -0
  42. data/lib/rdkafka/callbacks/list_consumer_groups_handler.rb +39 -0
  43. data/lib/rdkafka/callbacks/list_offsets_handler.rb +42 -0
  44. data/lib/rdkafka/callbacks.rb +54 -246
  45. data/lib/rdkafka/config.rb +69 -50
  46. data/lib/rdkafka/consumer/headers.rb +19 -5
  47. data/lib/rdkafka/consumer/partition.rb +8 -1
  48. data/lib/rdkafka/consumer/topic_partition_list.rb +58 -30
  49. data/lib/rdkafka/consumer.rb +211 -52
  50. data/lib/rdkafka/defaults.rb +24 -7
  51. data/lib/rdkafka/helpers/list_offsets.rb +127 -0
  52. data/lib/rdkafka/helpers/metadata.rb +29 -0
  53. data/lib/rdkafka/helpers/oauth.rb +10 -5
  54. data/lib/rdkafka/metadata.rb +86 -19
  55. data/lib/rdkafka/native_kafka.rb +22 -11
  56. data/lib/rdkafka/producer/delivery_handle.rb +4 -5
  57. data/lib/rdkafka/producer/partitions_count_cache.rb +24 -38
  58. data/lib/rdkafka/producer.rb +81 -61
  59. data/lib/rdkafka/version.rb +3 -3
  60. data/lib/rdkafka.rb +19 -0
  61. data/package-lock.json +3 -3
  62. data/rdkafka.gemspec +1 -0
  63. metadata +21 -5
  64. data/Gemfile +0 -13
  65. data/Gemfile.lint +0 -14
  66. data/Gemfile.lint.lock +0 -123
@@ -1,12 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rdkafka
4
- # A producer for Kafka messages. To create a producer set up a {Config} and call {Config#producer producer} on that.
4
+ # A producer for Kafka messages. To create a producer set up a {Config} and call
5
+ # {Config#producer producer} on that.
5
6
  class Producer
6
7
  include Helpers::Time
7
8
  include Helpers::OAuth
9
+ include Helpers::Metadata
8
10
 
9
- # @private
11
+ # @!visibility private
10
12
  @@partitions_count_cache = PartitionsCountCache.new
11
13
 
12
14
  # Global (process wide) partitions cache. We use it to store number of topics partitions,
@@ -94,6 +96,12 @@ module Rdkafka
94
96
  )
95
97
 
96
98
  unless result == :config_ok
99
+ # rd_kafka_topic_new has not been called yet, so librdkafka has not taken
100
+ # ownership of the config. Destroy it ourselves before raising, otherwise the
101
+ # partially built rd_kafka_topic_conf_t leaks. (On the rd_kafka_topic_new path
102
+ # librdkafka frees the conf on both success and failure, so we never destroy it
103
+ # there.)
104
+ Rdkafka::Bindings.rd_kafka_topic_conf_destroy(topic_config)
97
105
  raise Config::ConfigError.new(error_buffer.read_string)
98
106
  end
99
107
  end
@@ -244,10 +252,9 @@ module Rdkafka
244
252
  # @return [Integer] the number of messages in the queue
245
253
  # @raise [Rdkafka::ClosedProducerError] if called on a closed producer
246
254
  #
247
- # @note This method is thread-safe as it uses the @native_kafka.with_inner synchronization
248
- #
249
255
  # @example
250
256
  # producer.queue_size #=> 42
257
+ # @note This method is thread-safe as it uses the @native_kafka.with_inner synchronization
251
258
  def queue_size
252
259
  closed_producer_check(__method__)
253
260
 
@@ -273,10 +280,6 @@ module Rdkafka
273
280
  # @return [nil]
274
281
  # @raise [Rdkafka::ClosedProducerError] if called on a closed producer
275
282
  #
276
- # @note This method holds the inner lock until the queue is empty or `:stop` is returned.
277
- # Other producer operations (produce, close, etc.) will wait until this method returns.
278
- # @note This method is thread-safe as it uses @native_kafka.with_inner synchronization
279
- #
280
283
  # @example Drain all pending callbacks
281
284
  # producer.events_poll_nb_each { |_count| }
282
285
  #
@@ -285,6 +288,9 @@ module Rdkafka
285
288
  # producer.events_poll_nb_each do |_count|
286
289
  # :stop if monotonic_now >= deadline
287
290
  # end
291
+ # @note This method holds the inner lock until the queue is empty or `:stop` is returned.
292
+ # Other producer operations (produce, close, etc.) will wait until this method returns.
293
+ # @note This method is thread-safe as it uses @native_kafka.with_inner synchronization
288
294
  def events_poll_nb_each
289
295
  closed_producer_check(__method__)
290
296
 
@@ -322,33 +328,43 @@ module Rdkafka
322
328
  end
323
329
 
324
330
  topic_metadata ? topic_metadata[:partition_count] : Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
331
+ rescue Rdkafka::RdkafkaError => e
332
+ # A missing topic is an expected, cacheable outcome (the topic may be auto-created on
333
+ # produce, or simply not exist yet). Returning RD_KAFKA_PARTITION_UA from inside the block
334
+ # caches it, so we don't re-run a blocking metadata query on every produce(partition_key:)
335
+ # to that topic. Anything else is a real error and is re-raised.
336
+ raise(e) unless e.code == :unknown_topic_or_part
337
+
338
+ Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
325
339
  end
326
- rescue Rdkafka::RdkafkaError => e
327
- # If the topic does not exist, it will be created or if not allowed another error will be
328
- # raised. We here return RD_KAFKA_PARTITION_UA so this can happen without early error
329
- # happening on metadata discovery.
330
- return Rdkafka::Bindings::RD_KAFKA_PARTITION_UA if e.code == :unknown_topic_or_part
331
-
332
- raise(e)
333
340
  end
334
341
 
335
- # Produces a message to a Kafka topic. The message is added to rdkafka's queue, call {DeliveryHandle#wait wait} on the returned delivery handle to make sure it is delivered.
342
+ # Produces a message to a Kafka topic. The message is added to rdkafka's queue, call
343
+ # {DeliveryHandle#wait wait} on the returned delivery handle to make sure it is delivered.
336
344
  #
337
- # When no partition is specified the underlying Kafka library picks a partition based on the key. If no key is specified, a random partition will be used.
338
- # When a timestamp is provided this is used instead of the auto-generated timestamp.
345
+ # When no partition is specified the underlying Kafka library picks a partition based on the
346
+ # key. If no key is specified, a random partition will be used. When a timestamp is provided
347
+ # this is used instead of the auto-generated timestamp.
339
348
  #
340
349
  # @param topic [String] The topic to produce to
341
350
  # @param payload [String, nil]
342
351
  # @param key [String, nil]
343
352
  # @param partition [Integer, nil] Optional partition to produce to
344
- # @param partition_key [String, nil] Optional partition key based on which partition assignment can happen
345
- # @param timestamp [Time, Integer, nil] Optional timestamp of this message. Integer timestamp is in milliseconds since Jan 1 1970.
346
- # @param headers [Hash{String => String, Array<String>}] Optional message headers. Values can be either a single string or an array of strings to support duplicate headers per KIP-82
347
- # @param label [Object, nil] a label that can be assigned when producing a message that will be part of the delivery handle and the delivery report
348
- # @param topic_config [Hash] topic config for given message dispatch. Allows to send messages to topics with different configuration
353
+ # @param partition_key [String, nil] Optional partition key based on which partition
354
+ # assignment can happen
355
+ # @param timestamp [Time, Integer, nil] Optional timestamp of this message. Integer
356
+ # timestamp is in milliseconds since Jan 1 1970.
357
+ # @param headers [Hash{String => String, Array<String>}] Optional message headers. Values
358
+ # can be either a single string or an array of strings to support duplicate headers per
359
+ # KIP-82
360
+ # @param label [Object, nil] a label that can be assigned when producing a message that
361
+ # will be part of the delivery handle and the delivery report
362
+ # @param topic_config [Hash] topic config for given message dispatch. Allows to send
363
+ # messages to topics with different configuration
349
364
  # @param partitioner [String] name of the partitioner to use
350
365
  #
351
- # @return [DeliveryHandle] Delivery handle that can be used to wait for the result of producing this message
366
+ # @return [DeliveryHandle] Delivery handle that can be used to wait for the result of
367
+ # producing this message
352
368
  #
353
369
  # @raise [RdkafkaError] When adding the message to rdkafka's queue failed
354
370
  def produce(
@@ -410,8 +426,7 @@ module Rdkafka
410
426
  # based on the key when present.
411
427
  partition ||= Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
412
428
 
413
- # If timestamp is nil use 0 and let Kafka set one. If an integer or time
414
- # use it.
429
+ # If timestamp is nil use 0 and let Kafka set one. If an integer or time use it.
415
430
  raw_timestamp = if timestamp.nil?
416
431
  0
417
432
  elsif timestamp.is_a?(Integer)
@@ -431,51 +446,55 @@ module Rdkafka
431
446
  delivery_handle[:offset] = Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
432
447
  DeliveryHandle.register(delivery_handle)
433
448
 
434
- args = [
435
- :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_RKT, :pointer, topic_ref,
436
- :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_MSGFLAGS, :int, Rdkafka::Bindings::RD_KAFKA_MSG_F_COPY,
437
- :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_VALUE, :buffer_in, payload, :size_t, payload_size,
438
- :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_KEY, :buffer_in, key, :size_t, key_size,
439
- :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_PARTITION, :int32, partition,
440
- :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_TIMESTAMP, :int64, raw_timestamp,
441
- :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_OPAQUE, :pointer, delivery_handle
442
- ]
443
-
444
- headers&.each do |key0, value0|
445
- key = key0.to_s
446
- if value0.is_a?(Array)
447
- # Handle array of values per KIP-82
448
- value0.each do |value|
449
- value = value.to_s
449
+ begin
450
+ args = [
451
+ :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_RKT, :pointer, topic_ref,
452
+ :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_MSGFLAGS, :int, Rdkafka::Bindings::RD_KAFKA_MSG_F_COPY,
453
+ :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_VALUE, :buffer_in, payload, :size_t, payload_size,
454
+ :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_KEY, :buffer_in, key, :size_t, key_size,
455
+ :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_PARTITION, :int32, partition,
456
+ :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_TIMESTAMP, :int64, raw_timestamp,
457
+ :int, Rdkafka::Bindings::RD_KAFKA_VTYPE_OPAQUE, :pointer, delivery_handle
458
+ ]
459
+
460
+ headers&.each do |key0, value0|
461
+ key = key0.to_s
462
+ if value0.is_a?(Array)
463
+ # Handle array of values per KIP-82
464
+ value0.each do |value|
465
+ value = value.to_s
466
+ args << :int << Rdkafka::Bindings::RD_KAFKA_VTYPE_HEADER
467
+ args << :string << key
468
+ args << :pointer << value
469
+ args << :size_t << value.bytesize
470
+ end
471
+ else
472
+ # Handle single value
473
+ value = value0.to_s
450
474
  args << :int << Rdkafka::Bindings::RD_KAFKA_VTYPE_HEADER
451
475
  args << :string << key
452
476
  args << :pointer << value
453
477
  args << :size_t << value.bytesize
454
478
  end
455
- else
456
- # Handle single value
457
- value = value0.to_s
458
- args << :int << Rdkafka::Bindings::RD_KAFKA_VTYPE_HEADER
459
- args << :string << key
460
- args << :pointer << value
461
- args << :size_t << value.bytesize
462
479
  end
463
- end
464
480
 
465
- args << :int << Rdkafka::Bindings::RD_KAFKA_VTYPE_END
481
+ args << :int << Rdkafka::Bindings::RD_KAFKA_VTYPE_END
466
482
 
467
- # Produce the message
468
- response = @native_kafka.with_inner do |inner|
469
- Rdkafka::Bindings.rd_kafka_producev(
470
- inner,
471
- *args
472
- )
473
- end
483
+ # Produce the message
484
+ response = @native_kafka.with_inner do |inner|
485
+ Rdkafka::Bindings.rd_kafka_producev(
486
+ inner,
487
+ *args
488
+ )
489
+ end
474
490
 
475
- # Raise error if the produce call was not successful
476
- if response != Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
491
+ # Raise error if the produce call was not successful
492
+ if response != Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
493
+ raise RdkafkaError.new(response)
494
+ end
495
+ rescue Exception
477
496
  DeliveryHandle.remove(delivery_handle.to_ptr.address)
478
- raise RdkafkaError.new(response)
497
+ raise
479
498
  end
480
499
 
481
500
  delivery_handle
@@ -517,5 +536,6 @@ module Rdkafka
517
536
  def closed_producer_check(method)
518
537
  raise Rdkafka::ClosedProducerError.new(method) if closed?
519
538
  end
539
+ alias_method :closed_check, :closed_producer_check
520
540
  end
521
541
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  module Rdkafka
4
4
  # Current rdkafka-ruby gem version
5
- VERSION = "0.28.0"
5
+ VERSION = "0.29.1"
6
6
  # Target librdkafka version to be used
7
- LIBRDKAFKA_VERSION = "2.14.1"
7
+ LIBRDKAFKA_VERSION = "2.14.2"
8
8
  # SHA256 hash of the librdkafka source tarball for verification
9
- LIBRDKAFKA_SOURCE_SHA256 = "bb246e754dee3560e9b42bf4e844dc05de4b146a3cae937e36301ffacdc456e7"
9
+ LIBRDKAFKA_SOURCE_SHA256 = "d7eec9c31c817fa44402f679c252dfbf97e4c338a849a25c3579a31fd127beb8"
10
10
  end
data/lib/rdkafka.rb CHANGED
@@ -8,6 +8,8 @@ require "json"
8
8
  require "rdkafka/version"
9
9
  require "rdkafka/helpers/time"
10
10
  require "rdkafka/helpers/oauth"
11
+ require "rdkafka/helpers/metadata"
12
+ require "rdkafka/helpers/list_offsets"
11
13
  require "rdkafka/defaults"
12
14
  require "rdkafka/abstract_handle"
13
15
  require "rdkafka/admin"
@@ -15,6 +17,8 @@ require "rdkafka/admin/create_topic_handle"
15
17
  require "rdkafka/admin/create_topic_report"
16
18
  require "rdkafka/admin/delete_groups_handle"
17
19
  require "rdkafka/admin/delete_groups_report"
20
+ require "rdkafka/admin/delete_records_handle"
21
+ require "rdkafka/admin/delete_records_report"
18
22
  require "rdkafka/admin/delete_topic_handle"
19
23
  require "rdkafka/admin/delete_topic_report"
20
24
  require "rdkafka/admin/create_partitions_handle"
@@ -31,11 +35,26 @@ require "rdkafka/admin/incremental_alter_configs_handle"
31
35
  require "rdkafka/admin/incremental_alter_configs_report"
32
36
  require "rdkafka/admin/list_offsets_handle"
33
37
  require "rdkafka/admin/list_offsets_report"
38
+ require "rdkafka/admin/list_consumer_groups_handle"
39
+ require "rdkafka/admin/list_consumer_groups_report"
34
40
  require "rdkafka/admin/acl_binding_result"
35
41
  require "rdkafka/admin/config_binding_result"
36
42
  require "rdkafka/admin/config_resource_binding_result"
37
43
  require "rdkafka/bindings"
38
44
  require "rdkafka/callbacks"
45
+ require "rdkafka/callbacks/base_handler"
46
+ require "rdkafka/callbacks/create_topic_handler"
47
+ require "rdkafka/callbacks/delete_topic_handler"
48
+ require "rdkafka/callbacks/create_partitions_handler"
49
+ require "rdkafka/callbacks/delete_groups_handler"
50
+ require "rdkafka/callbacks/delete_records_handler"
51
+ require "rdkafka/callbacks/create_acl_handler"
52
+ require "rdkafka/callbacks/delete_acl_handler"
53
+ require "rdkafka/callbacks/describe_acl_handler"
54
+ require "rdkafka/callbacks/describe_configs_handler"
55
+ require "rdkafka/callbacks/incremental_alter_configs_handler"
56
+ require "rdkafka/callbacks/list_offsets_handler"
57
+ require "rdkafka/callbacks/list_consumer_groups_handler"
39
58
  require "rdkafka/config"
40
59
  require "rdkafka/consumer"
41
60
  require "rdkafka/consumer/headers"
data/package-lock.json CHANGED
@@ -286,9 +286,9 @@
286
286
  }
287
287
  },
288
288
  "node_modules/smol-toml": {
289
- "version": "1.6.1",
290
- "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz",
291
- "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==",
289
+ "version": "1.7.1",
290
+ "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.7.1.tgz",
291
+ "integrity": "sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==",
292
292
  "dev": true,
293
293
  "license": "BSD-3-Clause",
294
294
  "engines": {
data/rdkafka.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |gem|
19
19
  next true if file.start_with?(".")
20
20
  next true if file.start_with?("spec/")
21
21
  next true if file.start_with?("ext/README.md")
22
+ next true if file.start_with?("Gemfile")
22
23
 
23
24
  false
24
25
  end
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.28.0
4
+ version: 0.29.1
5
5
  platform: aarch64-linux-gnu
6
6
  authors:
7
7
  - Thijs Cadier
@@ -88,9 +88,6 @@ extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
90
  - CHANGELOG.md
91
- - Gemfile
92
- - Gemfile.lint
93
- - Gemfile.lint.lock
94
91
  - MIT-LICENSE
95
92
  - README.md
96
93
  - Rakefile
@@ -114,6 +111,8 @@ files:
114
111
  - lib/rdkafka/admin/delete_acl_report.rb
115
112
  - lib/rdkafka/admin/delete_groups_handle.rb
116
113
  - lib/rdkafka/admin/delete_groups_report.rb
114
+ - lib/rdkafka/admin/delete_records_handle.rb
115
+ - lib/rdkafka/admin/delete_records_report.rb
117
116
  - lib/rdkafka/admin/delete_topic_handle.rb
118
117
  - lib/rdkafka/admin/delete_topic_report.rb
119
118
  - lib/rdkafka/admin/describe_acl_handle.rb
@@ -122,10 +121,25 @@ files:
122
121
  - lib/rdkafka/admin/describe_configs_report.rb
123
122
  - lib/rdkafka/admin/incremental_alter_configs_handle.rb
124
123
  - lib/rdkafka/admin/incremental_alter_configs_report.rb
124
+ - lib/rdkafka/admin/list_consumer_groups_handle.rb
125
+ - lib/rdkafka/admin/list_consumer_groups_report.rb
125
126
  - lib/rdkafka/admin/list_offsets_handle.rb
126
127
  - lib/rdkafka/admin/list_offsets_report.rb
127
128
  - lib/rdkafka/bindings.rb
128
129
  - lib/rdkafka/callbacks.rb
130
+ - lib/rdkafka/callbacks/base_handler.rb
131
+ - lib/rdkafka/callbacks/create_acl_handler.rb
132
+ - lib/rdkafka/callbacks/create_partitions_handler.rb
133
+ - lib/rdkafka/callbacks/create_topic_handler.rb
134
+ - lib/rdkafka/callbacks/delete_acl_handler.rb
135
+ - lib/rdkafka/callbacks/delete_groups_handler.rb
136
+ - lib/rdkafka/callbacks/delete_records_handler.rb
137
+ - lib/rdkafka/callbacks/delete_topic_handler.rb
138
+ - lib/rdkafka/callbacks/describe_acl_handler.rb
139
+ - lib/rdkafka/callbacks/describe_configs_handler.rb
140
+ - lib/rdkafka/callbacks/incremental_alter_configs_handler.rb
141
+ - lib/rdkafka/callbacks/list_consumer_groups_handler.rb
142
+ - lib/rdkafka/callbacks/list_offsets_handler.rb
129
143
  - lib/rdkafka/config.rb
130
144
  - lib/rdkafka/consumer.rb
131
145
  - lib/rdkafka/consumer/headers.rb
@@ -134,6 +148,8 @@ files:
134
148
  - lib/rdkafka/consumer/topic_partition_list.rb
135
149
  - lib/rdkafka/defaults.rb
136
150
  - lib/rdkafka/error.rb
151
+ - lib/rdkafka/helpers/list_offsets.rb
152
+ - lib/rdkafka/helpers/metadata.rb
137
153
  - lib/rdkafka/helpers/oauth.rb
138
154
  - lib/rdkafka/helpers/time.rb
139
155
  - lib/rdkafka/metadata.rb
@@ -171,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
187
  - !ruby/object:Gem::Version
172
188
  version: '0'
173
189
  requirements: []
174
- rubygems_version: 4.0.10
190
+ rubygems_version: 4.0.16
175
191
  specification_version: 4
176
192
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
177
193
  It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
data/Gemfile DELETED
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec
6
-
7
- group :development do
8
- gem "ostruct"
9
- gem "pry"
10
- gem "rspec"
11
- gem "simplecov"
12
- gem "warning"
13
- end
data/Gemfile.lint DELETED
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # Documentation linting
6
- gem "yard-lint"
7
-
8
- # Code style (StandardRB via RuboCop)
9
- gem "standard"
10
- gem "standard-performance"
11
- gem "rubocop-performance"
12
- gem "rubocop-rspec"
13
- gem "standard-rspec"
14
- gem "rubocop-thread_safety"
data/Gemfile.lint.lock DELETED
@@ -1,123 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- ast (2.4.3)
5
- json (2.18.0)
6
- language_server-protocol (3.17.0.5)
7
- lint_roller (1.1.0)
8
- parallel (1.27.0)
9
- parser (3.3.10.1)
10
- ast (~> 2.4.1)
11
- racc
12
- prism (1.8.0)
13
- racc (1.8.1)
14
- rainbow (3.1.1)
15
- regexp_parser (2.11.3)
16
- rubocop (1.82.1)
17
- json (~> 2.3)
18
- language_server-protocol (~> 3.17.0.2)
19
- lint_roller (~> 1.1.0)
20
- parallel (~> 1.10)
21
- parser (>= 3.3.0.2)
22
- rainbow (>= 2.2.2, < 4.0)
23
- regexp_parser (>= 2.9.3, < 3.0)
24
- rubocop-ast (>= 1.48.0, < 2.0)
25
- ruby-progressbar (~> 1.7)
26
- unicode-display_width (>= 2.4.0, < 4.0)
27
- rubocop-ast (1.49.0)
28
- parser (>= 3.3.7.2)
29
- prism (~> 1.7)
30
- rubocop-capybara (2.22.1)
31
- lint_roller (~> 1.1)
32
- rubocop (~> 1.72, >= 1.72.1)
33
- rubocop-factory_bot (2.28.0)
34
- lint_roller (~> 1.1)
35
- rubocop (~> 1.72, >= 1.72.1)
36
- rubocop-performance (1.26.1)
37
- lint_roller (~> 1.1)
38
- rubocop (>= 1.75.0, < 2.0)
39
- rubocop-ast (>= 1.47.1, < 2.0)
40
- rubocop-rspec (3.9.0)
41
- lint_roller (~> 1.1)
42
- rubocop (~> 1.81)
43
- rubocop-rspec_rails (2.32.0)
44
- lint_roller (~> 1.1)
45
- rubocop (~> 1.72, >= 1.72.1)
46
- rubocop-rspec (~> 3.5)
47
- rubocop-thread_safety (0.7.3)
48
- lint_roller (~> 1.1)
49
- rubocop (~> 1.72, >= 1.72.1)
50
- rubocop-ast (>= 1.44.0, < 2.0)
51
- ruby-progressbar (1.13.0)
52
- standard (1.53.0)
53
- language_server-protocol (~> 3.17.0.2)
54
- lint_roller (~> 1.0)
55
- rubocop (~> 1.82.0)
56
- standard-custom (~> 1.0.0)
57
- standard-performance (~> 1.8)
58
- standard-custom (1.0.2)
59
- lint_roller (~> 1.0)
60
- rubocop (~> 1.50)
61
- standard-performance (1.9.0)
62
- lint_roller (~> 1.1)
63
- rubocop-performance (~> 1.26.0)
64
- standard-rspec (0.3.1)
65
- lint_roller (>= 1.0)
66
- rubocop-capybara (~> 2.22)
67
- rubocop-factory_bot (~> 2.27)
68
- rubocop-rspec (~> 3.5)
69
- rubocop-rspec_rails (~> 2.31)
70
- unicode-display_width (3.2.0)
71
- unicode-emoji (~> 4.1)
72
- unicode-emoji (4.2.0)
73
- yard (0.9.38)
74
- yard-lint (1.4.0)
75
- yard (~> 0.9)
76
- zeitwerk (~> 2.6)
77
- zeitwerk (2.7.4)
78
-
79
- PLATFORMS
80
- ruby
81
- x86_64-linux
82
-
83
- DEPENDENCIES
84
- rubocop-performance
85
- rubocop-rspec
86
- rubocop-thread_safety
87
- standard
88
- standard-performance
89
- standard-rspec
90
- yard-lint
91
-
92
- CHECKSUMS
93
- ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
94
- json (2.18.0) sha256=b10506aee4183f5cf49e0efc48073d7b75843ce3782c68dbeb763351c08fd505
95
- language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
96
- lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
97
- parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
98
- parser (3.3.10.1) sha256=06f6a725d2cd91e5e7f2b7c32ba143631e1f7c8ae2fb918fc4cebec187e6a688
99
- prism (1.8.0) sha256=84453a16ef5530ea62c5f03ec16b52a459575ad4e7b9c2b360fd8ce2c39c1254
100
- racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
101
- rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
102
- regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
103
- rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
104
- rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
105
- rubocop-capybara (2.22.1) sha256=ced88caef23efea53f46e098ff352f8fc1068c649606ca75cb74650970f51c0c
106
- rubocop-factory_bot (2.28.0) sha256=4b17fc02124444173317e131759d195b0d762844a71a29fe8139c1105d92f0cb
107
- rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
108
- rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
109
- rubocop-rspec_rails (2.32.0) sha256=4a0d641c72f6ebb957534f539d9d0a62c47abd8ce0d0aeee1ef4701e892a9100
110
- rubocop-thread_safety (0.7.3) sha256=067cdd52fbf5deffc18995437e45b5194236eaff4f71de3375a1f6052e48f431
111
- ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
112
- standard (1.53.0) sha256=f3c9493385db7079d0abce6f7582f553122156997b81258cd361d3480eeacf9c
113
- standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
114
- standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2
115
- standard-rspec (0.3.1) sha256=67bc957281cacf24f0d88235ca1bf28a8995265b1a60eb519cd0451858b56a22
116
- unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
117
- unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
118
- yard (0.9.38) sha256=721fb82afb10532aa49860655f6cc2eaa7130889df291b052e1e6b268283010f
119
- yard-lint (1.4.0) sha256=7dd88fbb08fd77cb840bea899d58812817b36d92291b5693dd0eeb3af9f91f0f
120
- zeitwerk (2.7.4) sha256=2bef90f356bdafe9a6c2bd32bcd804f83a4f9b8bc27f3600fff051eb3edcec8b
121
-
122
- BUNDLED WITH
123
- 4.0.3