rdkafka 0.24.1 → 0.24.2
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 +8 -4
- data/docker-compose-ssl.yml +1 -1
- data/docker-compose.yml +1 -1
- data/lib/rdkafka/helpers/oauth.rb +36 -9
- data/lib/rdkafka/version.rb +1 -1
- data/rdkafka.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5b0467e6f670f137f458bb1cb856f812ba2292c45a4c2a4b19477531fd59a3b7
|
|
4
|
+
data.tar.gz: 9e18e607e5114b7ed31266565c308517729890e643a68b8535d19fb8df4f8256
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d90b9aff5f184ec165c37451773845f66c71cfa47dc4dbf62d4764c009711ac28ab40fe4b3ecc083c2b599043f3906d552b52a1296fcbee089a8024a03c16e9e
|
|
7
|
+
data.tar.gz: 91db6ebb4e3dde0d98395c1714205bae0a5027b31f4d1a1fa435171873d81998efa56c76bdb2c8a410f3cbb3d4348ae847d564d8c2348884d0a7ee080877e7a4
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Rdkafka Changelog
|
|
2
2
|
|
|
3
|
+
## 0.24.2 (2025-10-31)
|
|
4
|
+
- [Enhancement] Force lock FFI to 1.17.1 or higher to include critical bug fixes around GCC, write barriers, and thread restarts for forks.
|
|
5
|
+
- [Fix] Fix for Core dump when providing extensions to oauthbearer_set_token (dssjoblom)
|
|
6
|
+
|
|
3
7
|
## 0.24.1 (2025-10-10)
|
|
4
8
|
- [Fix] Fix Github Action Ruby reference preventing non-compiled releases.
|
|
5
9
|
|
|
@@ -12,7 +16,7 @@
|
|
|
12
16
|
- [Fix] Disable OpenSSL Heartbeats during compilation.
|
|
13
17
|
|
|
14
18
|
## 0.23.0 (2025-09-04)
|
|
15
|
-
- **[
|
|
19
|
+
- **[EOL]** Drop support for Ruby 3.1 to move forward with the fiber scheduler work.
|
|
16
20
|
- [Enhancement] Bump librdkafka to `2.11.0`
|
|
17
21
|
- [Enhancement] Support explicit Debian testing due to lib issues.
|
|
18
22
|
- [Enhancement] Support ARM64 Gnu precompilation.
|
|
@@ -59,7 +63,7 @@
|
|
|
59
63
|
- [Patch] Retire no longer needed cooperative-sticky patch.
|
|
60
64
|
|
|
61
65
|
## 0.19.0 (2024-10-01)
|
|
62
|
-
- **[
|
|
66
|
+
- **[EOL]** Drop Ruby 3.0 support
|
|
63
67
|
- [Enhancement] Update `librdkafka` to `2.5.3`
|
|
64
68
|
- [Enhancement] Use default oauth callback if none is passed (bachmanity1)
|
|
65
69
|
- [Fix] Fix incorrectly behaving CI on failures.
|
|
@@ -83,7 +87,7 @@
|
|
|
83
87
|
- [Fix] Switch to local release of librdkafka to mitigate its unavailability.
|
|
84
88
|
|
|
85
89
|
## 0.16.0 (2024-06-13)
|
|
86
|
-
- **[
|
|
90
|
+
- **[EOL]** Retire support for Ruby 2.7.
|
|
87
91
|
- **[Breaking]** Messages without headers returned by `#poll` contain frozen empty hash.
|
|
88
92
|
- **[Breaking]** `HashWithSymbolKeysTreatedLikeStrings` has been removed so headers are regular hashes with string keys.
|
|
89
93
|
- **[Feature]** Support incremental config describe + alter API.
|
|
@@ -144,7 +148,7 @@
|
|
|
144
148
|
- [Fix] Reference to Opaque is not released when Admin, Consumer or Producer is closed (mensfeld)
|
|
145
149
|
- [Fix] Trigger `#poll` on native kafka creation to handle oauthbearer cb (mensfeld)
|
|
146
150
|
- [Fix] `#flush` does not handle the timeouts errors by making it return `true` if all flushed or `false` if failed. We do **not** raise an exception here to keep it backwards compatible (mensfeld)
|
|
147
|
-
- [
|
|
151
|
+
- **[EOL]** Remove support for Ruby 2.6 due to it being EOL and WeakMap incompatibilities (mensfeld)
|
|
148
152
|
- [Change] Update Kafka Docker with Confluent KRaft (mensfeld)
|
|
149
153
|
- [Change] Update librdkafka repo reference from edenhill to confluentinc (mensfeld)
|
|
150
154
|
|
data/docker-compose-ssl.yml
CHANGED
data/docker-compose.yml
CHANGED
|
@@ -12,12 +12,18 @@ module Rdkafka
|
|
|
12
12
|
# @return [Integer] 0 on success
|
|
13
13
|
def oauthbearer_set_token(token:, lifetime_ms:, principal_name:, extensions: nil)
|
|
14
14
|
error_buffer = FFI::MemoryPointer.from_string(" " * 256)
|
|
15
|
+
extensions_ptr, extensions_str_ptrs = map_extensions(extensions)
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
begin
|
|
18
|
+
response = @native_kafka.with_inner do |inner|
|
|
19
|
+
Rdkafka::Bindings.rd_kafka_oauthbearer_set_token(
|
|
20
|
+
inner, token, lifetime_ms, principal_name,
|
|
21
|
+
extensions_ptr, extension_size(extensions), error_buffer, 256
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
ensure
|
|
25
|
+
extensions_str_ptrs&.each { |ptr| ptr.free }
|
|
26
|
+
extensions_ptr&.free
|
|
21
27
|
end
|
|
22
28
|
|
|
23
29
|
return response if response.zero?
|
|
@@ -41,10 +47,31 @@ module Rdkafka
|
|
|
41
47
|
|
|
42
48
|
private
|
|
43
49
|
|
|
44
|
-
#
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
# Convert extensions hash to FFI::MemoryPointer (const char **).
|
|
51
|
+
# Note: the returned pointers must be freed manually (autorelease = false).
|
|
52
|
+
def map_extensions(extensions)
|
|
53
|
+
return [nil, nil] if extensions.nil? || extensions.empty?
|
|
54
|
+
|
|
55
|
+
# https://github.com/confluentinc/librdkafka/blob/master/src/rdkafka_sasl_oauthbearer.c#L327-L347
|
|
56
|
+
|
|
57
|
+
# The method argument is const char **
|
|
58
|
+
array_ptr = FFI::MemoryPointer.new(:pointer, extension_size(extensions))
|
|
59
|
+
array_ptr.autorelease = false
|
|
60
|
+
str_ptrs = []
|
|
61
|
+
|
|
62
|
+
# Element i is the key, i + 1 is the value.
|
|
63
|
+
extensions.each_with_index do |(k, v), i|
|
|
64
|
+
k_ptr = FFI::MemoryPointer.from_string(k.to_s)
|
|
65
|
+
k_ptr.autorelease = false
|
|
66
|
+
str_ptrs << k_ptr
|
|
67
|
+
v_ptr = FFI::MemoryPointer.from_string(v.to_s)
|
|
68
|
+
v_ptr.autorelease = false
|
|
69
|
+
str_ptrs << v_ptr
|
|
70
|
+
array_ptr[i * 2].put_pointer(0, k_ptr)
|
|
71
|
+
array_ptr[i * 2 + 1].put_pointer(0, v_ptr)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
[array_ptr, str_ptrs]
|
|
48
75
|
end
|
|
49
76
|
|
|
50
77
|
# extension_size is the number of keys + values which should be a non-negative even number
|
data/lib/rdkafka/version.rb
CHANGED
data/rdkafka.gemspec
CHANGED
|
@@ -67,7 +67,7 @@ Gem::Specification.new do |gem|
|
|
|
67
67
|
gem.extensions = %w(ext/Rakefile)
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
gem.add_dependency 'ffi', '~> 1.
|
|
70
|
+
gem.add_dependency 'ffi', '~> 1.17.1'
|
|
71
71
|
gem.add_dependency 'json', '> 2.0'
|
|
72
72
|
gem.add_dependency 'logger'
|
|
73
73
|
gem.add_dependency 'mini_portile2', '~> 2.6'
|
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.24.
|
|
4
|
+
version: 0.24.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thijs Cadier
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 1.17.1
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 1.17.1
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: json
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|