rdkafka 0.27.0-aarch64-linux-gnu → 0.29.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +38 -0
- data/README.md +2 -0
- data/docker-compose-ssl.yml +1 -1
- data/docker-compose.yml +1 -1
- data/ext/librdkafka.so +0 -0
- data/lib/rdkafka/abstract_handle.rb +31 -2
- data/lib/rdkafka/admin/config_binding_result.rb +2 -2
- data/lib/rdkafka/admin/create_acl_handle.rb +6 -5
- data/lib/rdkafka/admin/create_partitions_handle.rb +4 -6
- data/lib/rdkafka/admin/create_topic_handle.rb +4 -6
- data/lib/rdkafka/admin/delete_acl_handle.rb +5 -7
- data/lib/rdkafka/admin/delete_groups_handle.rb +4 -6
- data/lib/rdkafka/admin/delete_topic_handle.rb +4 -6
- data/lib/rdkafka/admin/describe_acl_handle.rb +5 -7
- data/lib/rdkafka/admin/describe_configs_handle.rb +4 -10
- data/lib/rdkafka/admin/describe_configs_report.rb +1 -5
- data/lib/rdkafka/admin/incremental_alter_configs_handle.rb +4 -10
- data/lib/rdkafka/admin/incremental_alter_configs_report.rb +1 -5
- data/lib/rdkafka/admin/list_offsets_handle.rb +5 -10
- data/lib/rdkafka/admin.rb +75 -43
- data/lib/rdkafka/bindings.rb +9 -4
- data/lib/rdkafka/callbacks/base_handler.rb +62 -0
- data/lib/rdkafka/callbacks/create_acl_handler.rb +37 -0
- data/lib/rdkafka/callbacks/create_partitions_handler.rb +37 -0
- data/lib/rdkafka/callbacks/create_topic_handler.rb +37 -0
- data/lib/rdkafka/callbacks/delete_acl_handler.rb +42 -0
- data/lib/rdkafka/callbacks/delete_groups_handler.rb +37 -0
- data/lib/rdkafka/callbacks/delete_topic_handler.rb +37 -0
- data/lib/rdkafka/callbacks/describe_acl_handler.rb +35 -0
- data/lib/rdkafka/callbacks/describe_configs_handler.rb +42 -0
- data/lib/rdkafka/callbacks/incremental_alter_configs_handler.rb +42 -0
- data/lib/rdkafka/callbacks/list_offsets_handler.rb +42 -0
- data/lib/rdkafka/callbacks.rb +50 -244
- data/lib/rdkafka/config.rb +45 -33
- data/lib/rdkafka/consumer/headers.rb +19 -5
- data/lib/rdkafka/consumer/partition.rb +8 -1
- data/lib/rdkafka/consumer/topic_partition_list.rb +44 -22
- data/lib/rdkafka/consumer.rb +135 -33
- data/lib/rdkafka/defaults.rb +19 -0
- data/lib/rdkafka/helpers/metadata.rb +29 -0
- data/lib/rdkafka/metadata.rb +86 -19
- data/lib/rdkafka/native_kafka.rb +2 -4
- data/lib/rdkafka/producer/delivery_handle.rb +3 -3
- data/lib/rdkafka/producer/partitions_count_cache.rb +24 -38
- data/lib/rdkafka/producer.rb +56 -44
- data/lib/rdkafka/version.rb +3 -3
- data/lib/rdkafka.rb +12 -0
- data/package-lock.json +6 -6
- data/rdkafka.gemspec +1 -0
- data/renovate.json +13 -2
- metadata +14 -5
- data/Gemfile +0 -13
- data/Gemfile.lint +0 -14
- data/Gemfile.lint.lock +0 -123
|
@@ -37,12 +37,11 @@ module Rdkafka
|
|
|
37
37
|
# contention in multi-threaded environments while ensuring data consistency.
|
|
38
38
|
#
|
|
39
39
|
# 6. Topic recreation handling
|
|
40
|
-
# If a topic is deleted and recreated with fewer partitions, the cache
|
|
41
|
-
#
|
|
42
|
-
#
|
|
43
|
-
#
|
|
44
|
-
#
|
|
45
|
-
# This also aligns with the previous cache implementation.
|
|
40
|
+
# If a topic is deleted and recreated with fewer partitions, the cache keeps reporting the
|
|
41
|
+
# higher count only until the entry's TTL expires. The first refresh after expiry performs
|
|
42
|
+
# an authoritative metadata read and adopts the lower count. Within the TTL window a lower
|
|
43
|
+
# value is still ignored, so a transient or racy lower read cannot clobber a correct higher
|
|
44
|
+
# count.
|
|
46
45
|
class PartitionsCountCache
|
|
47
46
|
include Helpers::Time
|
|
48
47
|
|
|
@@ -91,28 +90,14 @@ module Rdkafka
|
|
|
91
90
|
current_info = @counts[topic]
|
|
92
91
|
|
|
93
92
|
if current_info.nil? || expired?(current_info[0])
|
|
93
|
+
# The cached entry is missing or expired, so the block performs an authoritative metadata
|
|
94
|
+
# read. We hand it to `set`, which adopts a higher count always and a lower count once the
|
|
95
|
+
# entry has expired (e.g. the topic was recreated with fewer partitions). We then return
|
|
96
|
+
# whatever `set` settled on so a concurrent refresh that wrote a higher value still wins.
|
|
94
97
|
new_count = yield
|
|
98
|
+
set(topic, new_count)
|
|
95
99
|
|
|
96
|
-
|
|
97
|
-
# No existing data, create a new entry with mutex
|
|
98
|
-
set(topic, new_count)
|
|
99
|
-
|
|
100
|
-
return new_count
|
|
101
|
-
else
|
|
102
|
-
current_count = current_info[1]
|
|
103
|
-
|
|
104
|
-
if new_count > current_count
|
|
105
|
-
# Higher value needs mutex to update both timestamp and count
|
|
106
|
-
set(topic, new_count)
|
|
107
|
-
|
|
108
|
-
return new_count
|
|
109
|
-
else
|
|
110
|
-
# Same or lower value, just update timestamp without mutex
|
|
111
|
-
refresh_timestamp(topic)
|
|
112
|
-
|
|
113
|
-
return current_count
|
|
114
|
-
end
|
|
115
|
-
end
|
|
100
|
+
return @counts[topic][1]
|
|
116
101
|
end
|
|
117
102
|
|
|
118
103
|
current_info[1]
|
|
@@ -133,8 +118,11 @@ module Rdkafka
|
|
|
133
118
|
# First check outside mutex to avoid unnecessary locking
|
|
134
119
|
current_info = @counts[topic]
|
|
135
120
|
|
|
136
|
-
#
|
|
137
|
-
|
|
121
|
+
# Within the TTL window a lower value is treated as a stale/racy read and ignored, since
|
|
122
|
+
# partition counts only grow during normal operation. Once the entry has expired a lower
|
|
123
|
+
# value is an authoritative refresh (e.g. the topic was recreated with fewer partitions),
|
|
124
|
+
# so we fall through and adopt it below.
|
|
125
|
+
if current_info && new_count < current_info[1] && !expired?(current_info[0])
|
|
138
126
|
refresh_timestamp(topic)
|
|
139
127
|
|
|
140
128
|
return
|
|
@@ -148,17 +136,15 @@ module Rdkafka
|
|
|
148
136
|
if current_info.nil?
|
|
149
137
|
# Create new entry
|
|
150
138
|
@counts[topic] = [monotonic_now_ms, new_count]
|
|
139
|
+
elsif new_count > current_info[1] || expired?(current_info[0])
|
|
140
|
+
# A higher count always wins; a lower count is accepted only when the existing entry
|
|
141
|
+
# has expired, so a concurrent fresh higher value (which reset the timestamp) is never
|
|
142
|
+
# clobbered by a stale lower one.
|
|
143
|
+
current_info[0] = monotonic_now_ms
|
|
144
|
+
current_info[1] = new_count
|
|
151
145
|
else
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if new_count > current_count
|
|
155
|
-
# Update to higher count value
|
|
156
|
-
current_info[0] = monotonic_now_ms
|
|
157
|
-
current_info[1] = new_count
|
|
158
|
-
else
|
|
159
|
-
# Same or lower count, update timestamp only
|
|
160
|
-
current_info[0] = monotonic_now_ms
|
|
161
|
-
end
|
|
146
|
+
# Same or lower count within the TTL window: refresh the timestamp only
|
|
147
|
+
current_info[0] = monotonic_now_ms
|
|
162
148
|
end
|
|
163
149
|
end
|
|
164
150
|
end
|
data/lib/rdkafka/producer.rb
CHANGED
|
@@ -5,6 +5,7 @@ module Rdkafka
|
|
|
5
5
|
class Producer
|
|
6
6
|
include Helpers::Time
|
|
7
7
|
include Helpers::OAuth
|
|
8
|
+
include Helpers::Metadata
|
|
8
9
|
|
|
9
10
|
# @private
|
|
10
11
|
@@partitions_count_cache = PartitionsCountCache.new
|
|
@@ -94,6 +95,12 @@ module Rdkafka
|
|
|
94
95
|
)
|
|
95
96
|
|
|
96
97
|
unless result == :config_ok
|
|
98
|
+
# rd_kafka_topic_new has not been called yet, so librdkafka has not taken
|
|
99
|
+
# ownership of the config. Destroy it ourselves before raising, otherwise the
|
|
100
|
+
# partially built rd_kafka_topic_conf_t leaks. (On the rd_kafka_topic_new path
|
|
101
|
+
# librdkafka frees the conf on both success and failure, so we never destroy it
|
|
102
|
+
# there.)
|
|
103
|
+
Rdkafka::Bindings.rd_kafka_topic_conf_destroy(topic_config)
|
|
97
104
|
raise Config::ConfigError.new(error_buffer.read_string)
|
|
98
105
|
end
|
|
99
106
|
end
|
|
@@ -322,14 +329,15 @@ module Rdkafka
|
|
|
322
329
|
end
|
|
323
330
|
|
|
324
331
|
topic_metadata ? topic_metadata[:partition_count] : Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
|
|
332
|
+
rescue Rdkafka::RdkafkaError => e
|
|
333
|
+
# A missing topic is an expected, cacheable outcome (the topic may be auto-created on
|
|
334
|
+
# produce, or simply not exist yet). Returning RD_KAFKA_PARTITION_UA from inside the block
|
|
335
|
+
# caches it, so we don't re-run a blocking metadata query on every produce(partition_key:)
|
|
336
|
+
# to that topic. Anything else is a real error and is re-raised.
|
|
337
|
+
raise(e) unless e.code == :unknown_topic_or_part
|
|
338
|
+
|
|
339
|
+
Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
|
|
325
340
|
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
341
|
end
|
|
334
342
|
|
|
335
343
|
# 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.
|
|
@@ -410,8 +418,7 @@ module Rdkafka
|
|
|
410
418
|
# based on the key when present.
|
|
411
419
|
partition ||= Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
|
|
412
420
|
|
|
413
|
-
# If timestamp is nil use 0 and let Kafka set one. If an integer or time
|
|
414
|
-
# use it.
|
|
421
|
+
# If timestamp is nil use 0 and let Kafka set one. If an integer or time use it.
|
|
415
422
|
raw_timestamp = if timestamp.nil?
|
|
416
423
|
0
|
|
417
424
|
elsif timestamp.is_a?(Integer)
|
|
@@ -431,51 +438,55 @@ module Rdkafka
|
|
|
431
438
|
delivery_handle[:offset] = Rdkafka::Bindings::RD_KAFKA_PARTITION_UA
|
|
432
439
|
DeliveryHandle.register(delivery_handle)
|
|
433
440
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
441
|
+
begin
|
|
442
|
+
args = [
|
|
443
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_RKT, :pointer, topic_ref,
|
|
444
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_MSGFLAGS, :int, Rdkafka::Bindings::RD_KAFKA_MSG_F_COPY,
|
|
445
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_VALUE, :buffer_in, payload, :size_t, payload_size,
|
|
446
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_KEY, :buffer_in, key, :size_t, key_size,
|
|
447
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_PARTITION, :int32, partition,
|
|
448
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_TIMESTAMP, :int64, raw_timestamp,
|
|
449
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_OPAQUE, :pointer, delivery_handle
|
|
450
|
+
]
|
|
451
|
+
|
|
452
|
+
headers&.each do |key0, value0|
|
|
453
|
+
key = key0.to_s
|
|
454
|
+
if value0.is_a?(Array)
|
|
455
|
+
# Handle array of values per KIP-82
|
|
456
|
+
value0.each do |value|
|
|
457
|
+
value = value.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
|
+
end
|
|
463
|
+
else
|
|
464
|
+
# Handle single value
|
|
465
|
+
value = value0.to_s
|
|
450
466
|
args << :int << Rdkafka::Bindings::RD_KAFKA_VTYPE_HEADER
|
|
451
467
|
args << :string << key
|
|
452
468
|
args << :pointer << value
|
|
453
469
|
args << :size_t << value.bytesize
|
|
454
470
|
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
471
|
end
|
|
463
|
-
end
|
|
464
472
|
|
|
465
|
-
|
|
473
|
+
args << :int << Rdkafka::Bindings::RD_KAFKA_VTYPE_END
|
|
466
474
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
475
|
+
# Produce the message
|
|
476
|
+
response = @native_kafka.with_inner do |inner|
|
|
477
|
+
Rdkafka::Bindings.rd_kafka_producev(
|
|
478
|
+
inner,
|
|
479
|
+
*args
|
|
480
|
+
)
|
|
481
|
+
end
|
|
474
482
|
|
|
475
|
-
|
|
476
|
-
|
|
483
|
+
# Raise error if the produce call was not successful
|
|
484
|
+
if response != Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
|
|
485
|
+
raise RdkafkaError.new(response)
|
|
486
|
+
end
|
|
487
|
+
rescue Exception
|
|
477
488
|
DeliveryHandle.remove(delivery_handle.to_ptr.address)
|
|
478
|
-
raise
|
|
489
|
+
raise
|
|
479
490
|
end
|
|
480
491
|
|
|
481
492
|
delivery_handle
|
|
@@ -517,5 +528,6 @@ module Rdkafka
|
|
|
517
528
|
def closed_producer_check(method)
|
|
518
529
|
raise Rdkafka::ClosedProducerError.new(method) if closed?
|
|
519
530
|
end
|
|
531
|
+
alias_method :closed_check, :closed_producer_check
|
|
520
532
|
end
|
|
521
533
|
end
|
data/lib/rdkafka/version.rb
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
module Rdkafka
|
|
4
4
|
# Current rdkafka-ruby gem version
|
|
5
|
-
VERSION = "0.
|
|
5
|
+
VERSION = "0.29.0"
|
|
6
6
|
# Target librdkafka version to be used
|
|
7
|
-
LIBRDKAFKA_VERSION = "2.14.
|
|
7
|
+
LIBRDKAFKA_VERSION = "2.14.2"
|
|
8
8
|
# SHA256 hash of the librdkafka source tarball for verification
|
|
9
|
-
LIBRDKAFKA_SOURCE_SHA256 = "
|
|
9
|
+
LIBRDKAFKA_SOURCE_SHA256 = "d7eec9c31c817fa44402f679c252dfbf97e4c338a849a25c3579a31fd127beb8"
|
|
10
10
|
end
|
data/lib/rdkafka.rb
CHANGED
|
@@ -8,6 +8,7 @@ require "json"
|
|
|
8
8
|
require "rdkafka/version"
|
|
9
9
|
require "rdkafka/helpers/time"
|
|
10
10
|
require "rdkafka/helpers/oauth"
|
|
11
|
+
require "rdkafka/helpers/metadata"
|
|
11
12
|
require "rdkafka/defaults"
|
|
12
13
|
require "rdkafka/abstract_handle"
|
|
13
14
|
require "rdkafka/admin"
|
|
@@ -36,6 +37,17 @@ require "rdkafka/admin/config_binding_result"
|
|
|
36
37
|
require "rdkafka/admin/config_resource_binding_result"
|
|
37
38
|
require "rdkafka/bindings"
|
|
38
39
|
require "rdkafka/callbacks"
|
|
40
|
+
require "rdkafka/callbacks/base_handler"
|
|
41
|
+
require "rdkafka/callbacks/create_topic_handler"
|
|
42
|
+
require "rdkafka/callbacks/delete_topic_handler"
|
|
43
|
+
require "rdkafka/callbacks/create_partitions_handler"
|
|
44
|
+
require "rdkafka/callbacks/delete_groups_handler"
|
|
45
|
+
require "rdkafka/callbacks/create_acl_handler"
|
|
46
|
+
require "rdkafka/callbacks/delete_acl_handler"
|
|
47
|
+
require "rdkafka/callbacks/describe_acl_handler"
|
|
48
|
+
require "rdkafka/callbacks/describe_configs_handler"
|
|
49
|
+
require "rdkafka/callbacks/incremental_alter_configs_handler"
|
|
50
|
+
require "rdkafka/callbacks/list_offsets_handler"
|
|
39
51
|
require "rdkafka/config"
|
|
40
52
|
require "rdkafka/consumer"
|
|
41
53
|
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.
|
|
290
|
-
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.
|
|
291
|
-
"integrity": "sha512-
|
|
289
|
+
"version": "1.7.0",
|
|
290
|
+
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.7.0.tgz",
|
|
291
|
+
"integrity": "sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==",
|
|
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.
|
|
316
|
-
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.
|
|
317
|
-
"integrity": "sha512-
|
|
315
|
+
"version": "2.9.0",
|
|
316
|
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
|
|
317
|
+
"integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
|
|
318
318
|
"dev": true,
|
|
319
319
|
"license": "ISC",
|
|
320
320
|
"bin": {
|
data/rdkafka.gemspec
CHANGED
data/renovate.json
CHANGED
|
@@ -85,13 +85,24 @@
|
|
|
85
85
|
"ruby/setup-ruby",
|
|
86
86
|
"ruby"
|
|
87
87
|
],
|
|
88
|
-
"groupName": "ruby setup"
|
|
88
|
+
"groupName": "ruby setup",
|
|
89
|
+
"internalChecksFilter": "strict"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"description": "Let setup-ruby pass age gate before ruby so it is ready when the group PR is created",
|
|
93
|
+
"matchPackageNames": [
|
|
94
|
+
"ruby/setup-ruby"
|
|
95
|
+
],
|
|
96
|
+
"minimumReleaseAge": "5 days"
|
|
89
97
|
}
|
|
90
98
|
],
|
|
91
99
|
"labels": [
|
|
92
100
|
"dependencies"
|
|
93
101
|
],
|
|
94
102
|
"lockFileMaintenance": {
|
|
95
|
-
"enabled": true
|
|
103
|
+
"enabled": true,
|
|
104
|
+
"schedule": [
|
|
105
|
+
"before 4am on the first day of the month"
|
|
106
|
+
]
|
|
96
107
|
}
|
|
97
108
|
}
|
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.
|
|
4
|
+
version: 0.29.0
|
|
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
|
|
@@ -126,6 +123,17 @@ files:
|
|
|
126
123
|
- lib/rdkafka/admin/list_offsets_report.rb
|
|
127
124
|
- lib/rdkafka/bindings.rb
|
|
128
125
|
- lib/rdkafka/callbacks.rb
|
|
126
|
+
- lib/rdkafka/callbacks/base_handler.rb
|
|
127
|
+
- lib/rdkafka/callbacks/create_acl_handler.rb
|
|
128
|
+
- lib/rdkafka/callbacks/create_partitions_handler.rb
|
|
129
|
+
- lib/rdkafka/callbacks/create_topic_handler.rb
|
|
130
|
+
- lib/rdkafka/callbacks/delete_acl_handler.rb
|
|
131
|
+
- lib/rdkafka/callbacks/delete_groups_handler.rb
|
|
132
|
+
- lib/rdkafka/callbacks/delete_topic_handler.rb
|
|
133
|
+
- lib/rdkafka/callbacks/describe_acl_handler.rb
|
|
134
|
+
- lib/rdkafka/callbacks/describe_configs_handler.rb
|
|
135
|
+
- lib/rdkafka/callbacks/incremental_alter_configs_handler.rb
|
|
136
|
+
- lib/rdkafka/callbacks/list_offsets_handler.rb
|
|
129
137
|
- lib/rdkafka/config.rb
|
|
130
138
|
- lib/rdkafka/consumer.rb
|
|
131
139
|
- lib/rdkafka/consumer/headers.rb
|
|
@@ -134,6 +142,7 @@ files:
|
|
|
134
142
|
- lib/rdkafka/consumer/topic_partition_list.rb
|
|
135
143
|
- lib/rdkafka/defaults.rb
|
|
136
144
|
- lib/rdkafka/error.rb
|
|
145
|
+
- lib/rdkafka/helpers/metadata.rb
|
|
137
146
|
- lib/rdkafka/helpers/oauth.rb
|
|
138
147
|
- lib/rdkafka/helpers/time.rb
|
|
139
148
|
- lib/rdkafka/metadata.rb
|
|
@@ -171,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
171
180
|
- !ruby/object:Gem::Version
|
|
172
181
|
version: '0'
|
|
173
182
|
requirements: []
|
|
174
|
-
rubygems_version: 4.0.
|
|
183
|
+
rubygems_version: 4.0.10
|
|
175
184
|
specification_version: 4
|
|
176
185
|
summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
|
|
177
186
|
It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
|
data/Gemfile
DELETED
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
|