karafka-rdkafka 0.22.0.rc1-arm64-darwin → 0.22.1-arm64-darwin
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 +5 -1
- data/README.md +1 -1
- data/bin/verify_kafka_warnings +37 -0
- data/docker-compose-ssl.yml +1 -1
- data/docker-compose.yml +1 -1
- data/ext/librdkafka.dylib +0 -0
- data/lib/rdkafka/consumer/headers.rb +6 -4
- data/lib/rdkafka/producer/delivery_report.rb +1 -0
- data/lib/rdkafka/producer.rb +18 -13
- data/lib/rdkafka/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f7c69d37910114e531b2db41b1ded81ce5c891f2fe92da8825b291521c81a29
|
4
|
+
data.tar.gz: 6c1a6aca3d03cb69605a90492689db8bcb0dd2d8b8d5be4a4bd465ccb51a4b63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f59dfa8eacc744c85e043dc324a9c7833b87b176efa99d6fe26c706f16f2a5dd9d98e81306d072be92ccc4126327f42762bb5460a9c109baff4779e92bf9d2e9
|
7
|
+
data.tar.gz: 6d59f8823252c2c5d13f340e8ea25653ed82e567de2f70da83fb21c27f0876498f104818bf4adae4e0baf1ce3d85cb20144635f26da6e9a7b10d3828c217b476
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Rdkafka Changelog
|
2
2
|
|
3
|
-
## 0.22.
|
3
|
+
## 0.22.1 (2025-10-09)
|
4
|
+
- [Enhancement] Optimize header processing to eliminate double hash lookups and method checking overhead.
|
5
|
+
- [Enhancement] Optimize producer header processing with early returns and efficient array operations (69% faster for nil headers, 41% faster for empty headers, 12-32% faster when headers are present, with larger improvements for complex header scenarios).
|
6
|
+
|
7
|
+
## 0.22.0 (2025-09-26)
|
4
8
|
- **[Breaking]** Drop support for Ruby 3.1 to move forward with the fiber scheduler work.
|
5
9
|
- [Enhancement] Bump librdkafka to 2.11.1.
|
6
10
|
- [Enhancement] Improve sigstore attestation for precompiled releases.
|
data/README.md
CHANGED
@@ -63,7 +63,7 @@ Contributions should generally be made to the upstream [rdkafka-ruby repository]
|
|
63
63
|
|
64
64
|
| rdkafka-ruby | librdkafka | patches |
|
65
65
|
|-|-|-|
|
66
|
-
| 0.22.x (
|
66
|
+
| 0.22.x (2025-09-26) | 2.11.1 (2025-08-18) | yes |
|
67
67
|
| 0.21.x (2025-08-18) | 2.11.0 (2025-07-03) | yes |
|
68
68
|
| 0.20.x (2025-07-17) | 2.8.0 (2025-01-07) | yes |
|
69
69
|
| 0.19.x (2025-01-20) | 2.8.0 (2025-01-07) | yes |
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# Checks Kafka logs for unsupported warning patterns
|
4
|
+
# Only specified warnings are allowed, all others should trigger failure
|
5
|
+
|
6
|
+
allowed_patterns=(
|
7
|
+
"Performing controller activation"
|
8
|
+
"registered with feature metadata.version"
|
9
|
+
"Replayed TopicRecord for"
|
10
|
+
"Replayed PartitionRecord for"
|
11
|
+
"Previous leader None and previous leader epoch"
|
12
|
+
"Creating new"
|
13
|
+
"Unloaded transaction metadata"
|
14
|
+
"closing connection"
|
15
|
+
)
|
16
|
+
|
17
|
+
# Get all warnings
|
18
|
+
warnings=$(docker logs --since=0 kafka | grep "] WARN ")
|
19
|
+
exit_code=0
|
20
|
+
|
21
|
+
while IFS= read -r line; do
|
22
|
+
allowed=0
|
23
|
+
for pattern in "${allowed_patterns[@]}"; do
|
24
|
+
if echo "$line" | grep -q "$pattern"; then
|
25
|
+
allowed=1
|
26
|
+
break
|
27
|
+
fi
|
28
|
+
done
|
29
|
+
|
30
|
+
if [ $allowed -eq 0 ]; then
|
31
|
+
echo "Unexpected warning found:"
|
32
|
+
echo "$line"
|
33
|
+
exit_code=1
|
34
|
+
fi
|
35
|
+
done <<< "$warnings"
|
36
|
+
|
37
|
+
exit $exit_code
|
data/docker-compose-ssl.yml
CHANGED
data/docker-compose.yml
CHANGED
data/ext/librdkafka.dylib
CHANGED
Binary file
|
@@ -50,7 +50,7 @@ module Rdkafka
|
|
50
50
|
end
|
51
51
|
|
52
52
|
name_ptr = name_ptrptr.read_pointer
|
53
|
-
name = name_ptr.
|
53
|
+
name = name_ptr.read_string_to_null
|
54
54
|
|
55
55
|
size = size_ptr[:value]
|
56
56
|
|
@@ -59,10 +59,12 @@ module Rdkafka
|
|
59
59
|
|
60
60
|
if headers.key?(name)
|
61
61
|
# If we've seen this header before, convert to array if needed and append
|
62
|
-
|
63
|
-
|
62
|
+
existing = headers[name]
|
63
|
+
|
64
|
+
if existing.is_a?(Array)
|
65
|
+
existing << value
|
64
66
|
else
|
65
|
-
headers[name] = [
|
67
|
+
headers[name] = [existing, value]
|
66
68
|
end
|
67
69
|
else
|
68
70
|
# First occurrence - store as single value
|
data/lib/rdkafka/producer.rb
CHANGED
@@ -415,30 +415,35 @@ module Rdkafka
|
|
415
415
|
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_OPAQUE, :pointer, delivery_handle,
|
416
416
|
]
|
417
417
|
|
418
|
-
if headers
|
418
|
+
if headers && !headers.empty?
|
419
419
|
headers.each do |key0, value0|
|
420
420
|
key = key0.to_s
|
421
|
-
|
421
|
+
case value0
|
422
|
+
when Array
|
422
423
|
# Handle array of values per KIP-82
|
423
|
-
value0.each do |
|
424
|
-
value =
|
425
|
-
args
|
426
|
-
|
427
|
-
|
428
|
-
|
424
|
+
value0.each do |v|
|
425
|
+
value = v.to_s
|
426
|
+
args.push(
|
427
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_HEADER,
|
428
|
+
:string, key,
|
429
|
+
:pointer, value,
|
430
|
+
:size_t, value.bytesize
|
431
|
+
)
|
429
432
|
end
|
430
433
|
else
|
431
434
|
# Handle single value
|
432
435
|
value = value0.to_s
|
433
|
-
args
|
434
|
-
|
435
|
-
|
436
|
-
|
436
|
+
args.push(
|
437
|
+
:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_HEADER,
|
438
|
+
:string, key,
|
439
|
+
:pointer, value,
|
440
|
+
:size_t, value.bytesize
|
441
|
+
)
|
437
442
|
end
|
438
443
|
end
|
439
444
|
end
|
440
445
|
|
441
|
-
args
|
446
|
+
args.push(:int, Rdkafka::Bindings::RD_KAFKA_VTYPE_END)
|
442
447
|
|
443
448
|
# Produce the message
|
444
449
|
response = @native_kafka.with_inner do |inner|
|
data/lib/rdkafka/version.rb
CHANGED
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.22.
|
4
|
+
version: 0.22.1
|
5
5
|
platform: arm64-darwin
|
6
6
|
authors:
|
7
7
|
- Thijs Cadier
|
@@ -176,6 +176,7 @@ files:
|
|
176
176
|
- MIT-LICENSE
|
177
177
|
- README.md
|
178
178
|
- Rakefile
|
179
|
+
- bin/verify_kafka_warnings
|
179
180
|
- docker-compose-ssl.yml
|
180
181
|
- docker-compose.yml
|
181
182
|
- ext/librdkafka.dylib
|