karafka-rdkafka 0.17.5 → 0.18.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.github/workflows/ci.yml +4 -3
- data/.ruby-version +1 -1
- data/CHANGELOG.md +11 -0
- data/README.md +1 -0
- data/dist/librdkafka-2.6.1.tar.gz +0 -0
- data/dist/patches/rdkafka_global_init.patch +15 -0
- data/docker-compose.yml +1 -1
- data/ext/Rakefile +1 -1
- data/karafka-rdkafka.gemspec +1 -1
- data/lib/rdkafka/bindings.rb +5 -0
- data/lib/rdkafka/config.rb +3 -1
- data/lib/rdkafka/version.rb +3 -3
- data/lib/rdkafka.rb +2 -0
- data/spec/rdkafka/consumer/topic_partition_list_spec.rb +8 -2
- data.tar.gz.sig +0 -0
- metadata +6 -7
- metadata.gz.sig +0 -0
- data/dist/librdkafka_2.5.3.tar.gz +0 -0
- data/dist/patches/rdkafka_op.h.patch +0 -11
- data/dist/patches/rdkafka_sticky_assignor.c.patch +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e328f121d4a410ea1db50fd3661217757f2a772c3060f94abb4f3278ae59558
|
4
|
+
data.tar.gz: cb2aeb8e915c5fde19e73c74f91725bf04810a1afd211b9c418c57c936a2f3a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8217261e8118bf53d80e026fd30f8e76013c58babc4783e9f40fbfb706b0991a8ebc9fec94e86c67cf378e35cb57fa8ffa0a9163a87ca8e7b1a40326d24f75a
|
7
|
+
data.tar.gz: 20dc090cb6b6934a94497e06041c9fbfdeec1229720bade9f21bfa457bd53d9840a903a968c77d713d40796c048980ae8c6f94bfda1f45f26842681c6a800003
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/.github/workflows/ci.yml
CHANGED
@@ -22,11 +22,10 @@ jobs:
|
|
22
22
|
fail-fast: false
|
23
23
|
matrix:
|
24
24
|
ruby:
|
25
|
-
- '3.4.0-
|
25
|
+
- '3.4.0-preview2'
|
26
26
|
- '3.3'
|
27
27
|
- '3.2'
|
28
28
|
- '3.1'
|
29
|
-
- '3.0'
|
30
29
|
include:
|
31
30
|
- ruby: '3.3'
|
32
31
|
coverage: 'true'
|
@@ -50,6 +49,8 @@ jobs:
|
|
50
49
|
GITHUB_COVERAGE: ${{matrix.coverage}}
|
51
50
|
|
52
51
|
run: |
|
52
|
+
set -e
|
53
53
|
bundle install --path vendor/bundle
|
54
|
-
cd ext && bundle exec rake
|
54
|
+
cd ext && bundle exec rake
|
55
|
+
cd ..
|
55
56
|
bundle exec rspec
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.3.
|
1
|
+
3.3.6
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Rdkafka Changelog
|
2
2
|
|
3
|
+
## 0.18.0 (2024-11-26)
|
4
|
+
- **[Breaking]** Drop Ruby 3.0 support
|
5
|
+
- [Enhancement] Bump librdkafka to 2.6.1
|
6
|
+
- [Enhancement] Use default oauth callback if none is passed (bachmanity1)
|
7
|
+
- [Enhancement] Expose `rd_kafka_global_init` to mitigate macos forking issues.
|
8
|
+
- [Patch] Retire no longer needed cooperative-sticky patch.
|
9
|
+
|
10
|
+
## 0.17.6 (2024-09-03)
|
11
|
+
- [Fix] Fix incorrectly behaving CI on failures.
|
12
|
+
- [Fix] Fix invalid patches librdkafka references.
|
13
|
+
|
3
14
|
## 0.17.5 (2024-09-03)
|
4
15
|
- [Patch] Patch with "Add forward declaration to fix compilation without ssl" fix
|
5
16
|
|
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.18.0 (2024-11-26) | 2.6.1 (2024-11-18) | yes |
|
166
167
|
| 0.17.4 (2024-09-02) | 2.5.3 (2024-09-02) | yes |
|
167
168
|
| 0.17.0 (2024-08-01) | 2.5.0 (2024-07-10) | yes |
|
168
169
|
| 0.16.0 (2024-06-13) | 2.4.0 (2024-05-07) | no |
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# This patch is released under the 2-clause BSD license, same as librdkafka
|
2
|
+
#
|
3
|
+
--- librdkafka_2.5.3/src/rdkafka.h
|
4
|
+
+++ librdkafka_2.5.3/src/rdkafka.h
|
5
|
+
@@ -1101,6 +1101,10 @@ rd_kafka_topic_partition_t *rd_kafka_topic_partition_list_find(
|
6
|
+
const char *topic,
|
7
|
+
int32_t partition);
|
8
|
+
|
9
|
+
+/**
|
10
|
+
+ * @brief Allows for the global init of rdkafka when required in the Ruby process.
|
11
|
+
+ */
|
12
|
+
+RD_EXPORT void rd_kafka_global_init(void);
|
13
|
+
|
14
|
+
/**
|
15
|
+
* @brief Sort list using comparator \p cmp.
|
data/docker-compose.yml
CHANGED
data/ext/Rakefile
CHANGED
@@ -26,7 +26,7 @@ task :default => :clean do
|
|
26
26
|
releases = File.expand_path(File.join(File.dirname(__FILE__), '../dist'))
|
27
27
|
|
28
28
|
recipe.files << {
|
29
|
-
:url => "file://#{releases}/
|
29
|
+
:url => "file://#{releases}/librdkafka-#{Rdkafka::LIBRDKAFKA_VERSION}.tar.gz",
|
30
30
|
:sha256 => Rdkafka::LIBRDKAFKA_SOURCE_SHA256
|
31
31
|
}
|
32
32
|
recipe.configure_options = ["--host=#{recipe.host}"]
|
data/karafka-rdkafka.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.name = 'karafka-rdkafka'
|
16
16
|
gem.require_paths = ['lib']
|
17
17
|
gem.version = Rdkafka::VERSION
|
18
|
-
gem.required_ruby_version = '>= 3.
|
18
|
+
gem.required_ruby_version = '>= 3.1'
|
19
19
|
gem.extensions = %w(ext/Rakefile)
|
20
20
|
gem.cert_chain = %w[certs/cert.pem]
|
21
21
|
|
data/lib/rdkafka/bindings.rb
CHANGED
@@ -39,6 +39,11 @@ module Rdkafka
|
|
39
39
|
layout :value, :size_t
|
40
40
|
end
|
41
41
|
|
42
|
+
# This function comes from our patch on top of librdkafka. It allows os to load all the
|
43
|
+
# librdkafka components without initializing the client
|
44
|
+
# @see https://github.com/confluentinc/librdkafka/issues/4590
|
45
|
+
attach_function :rd_kafka_global_init, [], :void
|
46
|
+
|
42
47
|
# Polling
|
43
48
|
|
44
49
|
attach_function :rd_kafka_flush, [:pointer, :int], :int, blocking: true
|
data/lib/rdkafka/config.rb
CHANGED
@@ -338,7 +338,9 @@ module Rdkafka
|
|
338
338
|
Rdkafka::Bindings.rd_kafka_conf_set_error_cb(config, Rdkafka::Bindings::ErrorCallback)
|
339
339
|
|
340
340
|
# Set oauth callback
|
341
|
-
Rdkafka::
|
341
|
+
if Rdkafka::Config.oauthbearer_token_refresh_callback
|
342
|
+
Rdkafka::Bindings.rd_kafka_conf_set_oauthbearer_token_refresh_cb(config, Rdkafka::Bindings::OAuthbearerTokenRefreshCallback)
|
343
|
+
end
|
342
344
|
end
|
343
345
|
end
|
344
346
|
|
data/lib/rdkafka/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Rdkafka
|
4
|
-
VERSION = "0.
|
5
|
-
LIBRDKAFKA_VERSION = "2.
|
6
|
-
LIBRDKAFKA_SOURCE_SHA256 = "
|
4
|
+
VERSION = "0.18.0.rc1"
|
5
|
+
LIBRDKAFKA_VERSION = "2.6.1"
|
6
|
+
LIBRDKAFKA_SOURCE_SHA256 = "0ddf205ad8d36af0bc72a2fec20639ea02e1d583e353163bf7f4683d949e901b"
|
7
7
|
end
|
data/lib/rdkafka.rb
CHANGED
@@ -114,12 +114,18 @@ describe Rdkafka::Consumer::TopicPartitionList do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
describe "#to_s" do
|
117
|
+
let(:expected) do
|
118
|
+
if RUBY_VERSION >= '3.4.0'
|
119
|
+
"<TopicPartitionList: {\"topic1\" => [<Partition 0>, <Partition 1>]}>"
|
120
|
+
else
|
121
|
+
"<TopicPartitionList: {\"topic1\"=>[<Partition 0>, <Partition 1>]}>"
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
117
125
|
it "should return a human readable representation" do
|
118
126
|
list = Rdkafka::Consumer::TopicPartitionList.new
|
119
127
|
list.add_topic("topic1", [0, 1])
|
120
128
|
|
121
|
-
expected = "<TopicPartitionList: {\"topic1\"=>[<Partition 0>, <Partition 1>]}>"
|
122
|
-
|
123
129
|
expect(list.to_s).to eq expected
|
124
130
|
end
|
125
131
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
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.
|
4
|
+
version: 0.18.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thijs Cadier
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
i9zWxov0mr44TWegTVeypcWGd/0nxu1+QHVNHJrpqlPBRvwQsUm7fwmRInGpcaB8
|
37
37
|
ap8wNYvryYzrzvzUxIVFBVM5PacgkFqRmolCa8I7tdKQN+R1
|
38
38
|
-----END CERTIFICATE-----
|
39
|
-
date: 2024-
|
39
|
+
date: 2024-11-26 00:00:00.000000000 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ffi
|
@@ -186,9 +186,8 @@ files:
|
|
186
186
|
- README.md
|
187
187
|
- Rakefile
|
188
188
|
- certs/cert.pem
|
189
|
-
- dist/
|
190
|
-
- dist/patches/
|
191
|
-
- dist/patches/rdkafka_sticky_assignor.c.patch
|
189
|
+
- dist/librdkafka-2.6.1.tar.gz
|
190
|
+
- dist/patches/rdkafka_global_init.patch
|
192
191
|
- docker-compose.yml
|
193
192
|
- ext/README.md
|
194
193
|
- ext/Rakefile
|
@@ -281,14 +280,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
281
280
|
requirements:
|
282
281
|
- - ">="
|
283
282
|
- !ruby/object:Gem::Version
|
284
|
-
version: '3.
|
283
|
+
version: '3.1'
|
285
284
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
286
285
|
requirements:
|
287
286
|
- - ">="
|
288
287
|
- !ruby/object:Gem::Version
|
289
288
|
version: '0'
|
290
289
|
requirements: []
|
291
|
-
rubygems_version: 3.5.
|
290
|
+
rubygems_version: 3.5.22
|
292
291
|
signing_key:
|
293
292
|
specification_version: 4
|
294
293
|
summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
|
metadata.gz.sig
CHANGED
Binary file
|
Binary file
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# ref https://github.com/confluentinc/librdkafka/pull/4794/files
|
2
|
-
--- librdkafka_2.5.0/src/rdkafka_op.h 2024-07-08 09:47:43.000000000 +0200
|
3
|
-
+++ librdkafka_2.5.0/src/rdkafka_op.h 2024-07-30 09:44:38.529759640 +0200
|
4
|
-
@@ -39,6 +39,7 @@
|
5
|
-
typedef struct rd_kafka_q_s rd_kafka_q_t;
|
6
|
-
typedef struct rd_kafka_toppar_s rd_kafka_toppar_t;
|
7
|
-
typedef struct rd_kafka_op_s rd_kafka_op_t;
|
8
|
-
+typedef struct rd_kafka_broker_s rd_kafka_broker_t;
|
9
|
-
|
10
|
-
/* One-off reply queue + reply version.
|
11
|
-
* All APIs that take a rd_kafka_replyq_t makes a copy of the
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# This patch is released under the 2-clause BSD license, same as librdkafka
|
2
|
-
# Fixes: https://github.com/confluentinc/librdkafka/issues/4783
|
3
|
-
#
|
4
|
-
--- librdkafka_2.5.0/src/rdkafka_sticky_assignor.c 2024-07-08 09:47:43.000000000 +0200
|
5
|
-
+++ librdkafka_2.5.0/src/rdkafka_sticky_assignor.c 2024-07-30 09:44:38.529759640 +0200
|
6
|
-
@@ -769,7 +769,7 @@
|
7
|
-
const rd_kafka_topic_partition_list_t *partitions;
|
8
|
-
const char *consumer;
|
9
|
-
const rd_map_elem_t *elem;
|
10
|
-
- int i;
|
11
|
-
+ int i, j;
|
12
|
-
|
13
|
-
/* The assignment is balanced if minimum and maximum numbers of
|
14
|
-
* partitions assigned to consumers differ by at most one. */
|
15
|
-
@@ -836,9 +836,9 @@
|
16
|
-
|
17
|
-
/* Otherwise make sure it can't get any more partitions */
|
18
|
-
|
19
|
-
- for (i = 0; i < potentialTopicPartitions->cnt; i++) {
|
20
|
-
+ for (j = 0; j < potentialTopicPartitions->cnt; j++) {
|
21
|
-
const rd_kafka_topic_partition_t *partition =
|
22
|
-
- &potentialTopicPartitions->elems[i];
|
23
|
-
+ &potentialTopicPartitions->elems[j];
|
24
|
-
const char *otherConsumer;
|
25
|
-
int otherConsumerPartitionCount;
|
26
|
-
|