rdkafka 0.27.0-aarch64-linux-musl → 0.28.0-aarch64-linux-musl
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 -0
- data/README.md +1 -0
- data/docker-compose-ssl.yml +1 -1
- data/docker-compose.yml +1 -1
- data/ext/librdkafka.so +0 -0
- data/lib/rdkafka/consumer.rb +26 -14
- data/lib/rdkafka/version.rb +3 -3
- data/package-lock.json +6 -6
- data/renovate.json +13 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b2ae08f31e889c8715ff68f2979c930634443e7858ec7b1cb9bddccc0d4b952d
|
|
4
|
+
data.tar.gz: cc49206dbbebd4da4346ad1c95fce527f4ce700f7036c2bf580d4c94cb8123b4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 290e1d8bb1a79b81b84f3deb29515eb43e32d16d455a5624d76ec3350fc99c1abb57627c4aadd35fe9eb59d66fe27987c2c478a2e43e185a100693801deb606e
|
|
7
|
+
data.tar.gz: f6066789465be28c06c1a846989cf04332ed6839e36ee81e0124c21e8ad0b1994f647c2cb61c76849140bf11d323c12ddf0361a39a54f82ff17ed8f87fd615dc
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Rdkafka Changelog
|
|
2
2
|
|
|
3
|
+
## 0.28.0 (2026-06-03)
|
|
4
|
+
- [Enhancement] Bump librdkafka to `2.14.1`
|
|
5
|
+
- [Enhancement] Replace version-gated `Warning[:performance]` with dynamic `Warning.categories` opt-in in spec helper so new Ruby warning categories are automatically enabled without manual updates.
|
|
6
|
+
- [Enhancement] `poll_batch` and `poll_batch_nb` now return error events inline as `RdkafkaError` objects rather than raising on the first error. The return type is `Array<Message, RdkafkaError>` and callers are responsible for handling errors in the result.
|
|
7
|
+
|
|
3
8
|
## 0.27.0 (2026-05-07)
|
|
4
9
|
- [Feature] Add `Consumer#poll_batch(timeout_ms, max_items:)` and `Consumer#poll_batch_nb(timeout_ms, max_items:)` for batch message polling via `rd_kafka_consume_batch_queue`.
|
|
5
10
|
- [Feature] Add `Config#describe_properties` to dump all librdkafka configuration properties (including defaults and hidden properties) as a Hash via `rd_kafka_conf_dump`.
|
data/README.md
CHANGED
|
@@ -163,6 +163,7 @@ bundle exec rake produce_messages
|
|
|
163
163
|
|
|
164
164
|
| rdkafka-ruby | librdkafka | patches |
|
|
165
165
|
|-|-|-|
|
|
166
|
+
| 0.28.x (2026-06-03) | 2.14.1 (2026-04-15) | yes |
|
|
166
167
|
| 0.27.x (2026-05-07) | 2.14.0 (2026-04-01) | yes |
|
|
167
168
|
| 0.26.x (2026-03-30) | 2.13.2 (2026-03-02) | yes |
|
|
168
169
|
| 0.25.x (2026-01-21) | 2.12.1 (2025-10-21) | yes |
|
data/docker-compose-ssl.yml
CHANGED
data/docker-compose.yml
CHANGED
data/ext/librdkafka.so
CHANGED
|
Binary file
|
data/lib/rdkafka/consumer.rb
CHANGED
|
@@ -795,16 +795,21 @@ module Rdkafka
|
|
|
795
795
|
# is available, librdkafka fills the buffer with whatever is immediately ready and
|
|
796
796
|
# returns without further waiting.
|
|
797
797
|
#
|
|
798
|
+
# Error events (e.g. `:partition_eof`) are returned inline as {RdkafkaError} objects
|
|
799
|
+
# rather than raised, so callers receive the complete batch — both messages and errors —
|
|
800
|
+
# and can decide how to handle each. This is particularly useful when multiple partitions
|
|
801
|
+
# signal EOF simultaneously: all signals appear in the returned array rather than only
|
|
802
|
+
# the first one being raised and the rest silently discarded.
|
|
803
|
+
#
|
|
798
804
|
# @param timeout_ms [Integer] Timeout waiting for the first message (-1 for infinite)
|
|
799
805
|
# @param max_items [Integer] Maximum number of messages to return per call
|
|
800
|
-
# @return [Array<Message>]
|
|
801
|
-
# @raise [RdkafkaError] When a consumed message contains an error
|
|
806
|
+
# @return [Array<Message, RdkafkaError>] Batch of messages and/or error events in arrival order
|
|
802
807
|
# @raise [ClosedConsumerError] When called on a closed consumer
|
|
803
808
|
def poll_batch(timeout_ms, max_items: 100)
|
|
804
809
|
closed_consumer_check(__method__)
|
|
805
810
|
|
|
806
811
|
buffer = batch_buffer(max_items)
|
|
807
|
-
|
|
812
|
+
results = []
|
|
808
813
|
|
|
809
814
|
count = @native_kafka.with_inner do |_inner|
|
|
810
815
|
Rdkafka::Bindings.rd_kafka_consume_batch_queue(
|
|
@@ -815,7 +820,7 @@ module Rdkafka
|
|
|
815
820
|
)
|
|
816
821
|
end
|
|
817
822
|
|
|
818
|
-
return
|
|
823
|
+
return results if count <= 0
|
|
819
824
|
|
|
820
825
|
i = 0
|
|
821
826
|
begin
|
|
@@ -830,10 +835,13 @@ module Rdkafka
|
|
|
830
835
|
native_message = Rdkafka::Bindings::Message.new(ptr)
|
|
831
836
|
|
|
832
837
|
if native_message[:err] != Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
|
|
833
|
-
|
|
838
|
+
results << Rdkafka::RdkafkaError.new(native_message[:err])
|
|
839
|
+
Rdkafka::Bindings.rd_kafka_message_destroy(ptr)
|
|
840
|
+
i += 1
|
|
841
|
+
next
|
|
834
842
|
end
|
|
835
843
|
|
|
836
|
-
|
|
844
|
+
results << Rdkafka::Consumer::Message.new(native_message)
|
|
837
845
|
Rdkafka::Bindings.rd_kafka_message_destroy(ptr)
|
|
838
846
|
i += 1
|
|
839
847
|
end
|
|
@@ -845,7 +853,7 @@ module Rdkafka
|
|
|
845
853
|
end
|
|
846
854
|
end
|
|
847
855
|
|
|
848
|
-
|
|
856
|
+
results
|
|
849
857
|
end
|
|
850
858
|
|
|
851
859
|
# Poll for a batch of messages without releasing the GVL (Global VM Lock).
|
|
@@ -857,16 +865,17 @@ module Rdkafka
|
|
|
857
865
|
# @note Since the GVL is not released, a non-zero timeout_ms will block all Ruby
|
|
858
866
|
# threads/fibers for the duration. Use {#poll_batch} if you need a blocking wait.
|
|
859
867
|
#
|
|
868
|
+
# Error events are returned inline as {RdkafkaError} objects; see {#poll_batch} for details.
|
|
869
|
+
#
|
|
860
870
|
# @param timeout_ms [Integer] Timeout waiting for the first message (default: 0 for non-blocking)
|
|
861
871
|
# @param max_items [Integer] Maximum number of messages to return per call
|
|
862
|
-
# @return [Array<Message>]
|
|
863
|
-
# @raise [RdkafkaError] When a consumed message contains an error
|
|
872
|
+
# @return [Array<Message, RdkafkaError>] Batch of messages and/or error events in arrival order
|
|
864
873
|
# @raise [ClosedConsumerError] When called on a closed consumer
|
|
865
874
|
def poll_batch_nb(timeout_ms = 0, max_items: 100)
|
|
866
875
|
closed_consumer_check(__method__)
|
|
867
876
|
|
|
868
877
|
buffer = batch_buffer(max_items)
|
|
869
|
-
|
|
878
|
+
results = []
|
|
870
879
|
|
|
871
880
|
count = @native_kafka.with_inner do |_inner|
|
|
872
881
|
Rdkafka::Bindings.rd_kafka_consume_batch_queue_nb(
|
|
@@ -877,7 +886,7 @@ module Rdkafka
|
|
|
877
886
|
)
|
|
878
887
|
end
|
|
879
888
|
|
|
880
|
-
return
|
|
889
|
+
return results if count <= 0
|
|
881
890
|
|
|
882
891
|
i = 0
|
|
883
892
|
begin
|
|
@@ -892,10 +901,13 @@ module Rdkafka
|
|
|
892
901
|
native_message = Rdkafka::Bindings::Message.new(ptr)
|
|
893
902
|
|
|
894
903
|
if native_message[:err] != Rdkafka::Bindings::RD_KAFKA_RESP_ERR_NO_ERROR
|
|
895
|
-
|
|
904
|
+
results << Rdkafka::RdkafkaError.new(native_message[:err])
|
|
905
|
+
Rdkafka::Bindings.rd_kafka_message_destroy(ptr)
|
|
906
|
+
i += 1
|
|
907
|
+
next
|
|
896
908
|
end
|
|
897
909
|
|
|
898
|
-
|
|
910
|
+
results << Rdkafka::Consumer::Message.new(native_message)
|
|
899
911
|
Rdkafka::Bindings.rd_kafka_message_destroy(ptr)
|
|
900
912
|
i += 1
|
|
901
913
|
end
|
|
@@ -907,7 +919,7 @@ module Rdkafka
|
|
|
907
919
|
end
|
|
908
920
|
end
|
|
909
921
|
|
|
910
|
-
|
|
922
|
+
results
|
|
911
923
|
end
|
|
912
924
|
|
|
913
925
|
# Poll for new messages and yield for each received one. Iteration
|
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.28.0"
|
|
6
6
|
# Target librdkafka version to be used
|
|
7
|
-
LIBRDKAFKA_VERSION = "2.14.
|
|
7
|
+
LIBRDKAFKA_VERSION = "2.14.1"
|
|
8
8
|
# SHA256 hash of the librdkafka source tarball for verification
|
|
9
|
-
LIBRDKAFKA_SOURCE_SHA256 = "
|
|
9
|
+
LIBRDKAFKA_SOURCE_SHA256 = "bb246e754dee3560e9b42bf4e844dc05de4b146a3cae937e36301ffacdc456e7"
|
|
10
10
|
end
|
data/package-lock.json
CHANGED
|
@@ -286,9 +286,9 @@
|
|
|
286
286
|
}
|
|
287
287
|
},
|
|
288
288
|
"node_modules/smol-toml": {
|
|
289
|
-
"version": "1.6.
|
|
290
|
-
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.
|
|
291
|
-
"integrity": "sha512-
|
|
289
|
+
"version": "1.6.1",
|
|
290
|
+
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz",
|
|
291
|
+
"integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==",
|
|
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/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.28.0
|
|
5
5
|
platform: aarch64-linux-musl
|
|
6
6
|
authors:
|
|
7
7
|
- Thijs Cadier
|
|
@@ -171,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
172
|
version: '0'
|
|
173
173
|
requirements: []
|
|
174
|
-
rubygems_version: 4.0.
|
|
174
|
+
rubygems_version: 4.0.10
|
|
175
175
|
specification_version: 4
|
|
176
176
|
summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
|
|
177
177
|
It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
|