karafka-rdkafka 0.22.1-aarch64-linux-gnu → 0.23.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 +13 -5
- 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/karafka-rdkafka.gemspec +1 -1
- data/lib/rdkafka/helpers/oauth.rb +36 -9
- data/lib/rdkafka/version.rb +3 -3
- 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: 19c398f618287aca317a10dd10ba146999f2a4a4951da57746d778c0ff837d90
|
|
4
|
+
data.tar.gz: a7f2eecd68370a96478a33b3f6a1cefd7db31abc014215421771fdcd7ce8e289
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: df961fcf19f0caf4fe9a0807e57470838b0be671d7e0558bde246f107a02241be92c3ebe26042cec35b9002a48303f47ca55cf5662f44fa88127afbbedd7ff75
|
|
7
|
+
data.tar.gz: c8c2e05e9543fb6c8482532b1085770ba06847a9576955096b7272d6772e7fb571b9363af5e2ae65f29aa2bfb037760ebe14e78f36f351223371397ea81b3234
|
data/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
# Rdkafka Changelog
|
|
2
2
|
|
|
3
|
+
## 0.23.0 (2025-11-01)
|
|
4
|
+
- [Enhancement] Bump librdkafka to 2.12.1.
|
|
5
|
+
- [Enhancement] Force lock FFI to 1.17.1 or higher to include critical bug fixes around GCC, write barriers, and thread restarts for forks.
|
|
6
|
+
- [Fix] Fix for Core dump when providing extensions to oauthbearer_set_token (dssjoblom)
|
|
7
|
+
|
|
8
|
+
## 0.22.2 (2025-10-09)
|
|
9
|
+
- [Fix] Fix Github Action Ruby reference preventing non-compiled releases.
|
|
10
|
+
|
|
3
11
|
## 0.22.1 (2025-10-09)
|
|
4
12
|
- [Enhancement] Optimize header processing to eliminate double hash lookups and method checking overhead.
|
|
5
13
|
- [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
14
|
|
|
7
15
|
## 0.22.0 (2025-09-26)
|
|
8
|
-
- **[
|
|
16
|
+
- **[EOL]** Drop support for Ruby 3.1 to move forward with the fiber scheduler work.
|
|
9
17
|
- [Enhancement] Bump librdkafka to 2.11.1.
|
|
10
18
|
- [Enhancement] Improve sigstore attestation for precompiled releases.
|
|
11
19
|
- [Fix] Fix incorrectly set default SSL certs dir.
|
|
@@ -65,7 +73,7 @@
|
|
|
65
73
|
- [Fix] Do not run `Rdkafka::Bindings.rd_kafka_global_init` on require to prevent some of macos versions from hanging on Puma fork.
|
|
66
74
|
|
|
67
75
|
## 0.18.0 (2024-11-26)
|
|
68
|
-
- **[
|
|
76
|
+
- **[EOL]** Drop Ruby 3.0 support
|
|
69
77
|
- [Enhancement] Bump librdkafka to 2.6.1
|
|
70
78
|
- [Enhancement] Use default oauth callback if none is passed (bachmanity1)
|
|
71
79
|
- [Enhancement] Expose `rd_kafka_global_init` to mitigate macos forking issues.
|
|
@@ -106,7 +114,7 @@
|
|
|
106
114
|
- **[Breaking]** `HashWithSymbolKeysTreatedLikeStrings` has been removed so headers are regular hashes with string keys.
|
|
107
115
|
- [Enhancement] Bump librdkafka to 2.4.0
|
|
108
116
|
- [Enhancement] Save two objects on message produced and lower CPU usage on message produced with small improvements.
|
|
109
|
-
- [
|
|
117
|
+
- **[EOL]** Remove support for Ruby 2.7. Supporting it was a bug since rest of the karafka ecosystem no longer supports it.
|
|
110
118
|
|
|
111
119
|
## 0.15.2 (2024-07-10)
|
|
112
120
|
- [Fix] Switch to local release of librdkafka to mitigate its unavailability.
|
|
@@ -187,7 +195,7 @@
|
|
|
187
195
|
- [Enhancement] Get consumer position (thijsc & mensfeld)
|
|
188
196
|
|
|
189
197
|
## 0.13.7 (2023-10-31)
|
|
190
|
-
- [
|
|
198
|
+
- **[EOL]** Drop support for Ruby 2.6 due to incompatibilities in usage of `ObjectSpace::WeakMap`
|
|
191
199
|
- [Fix] Fix dangling Opaque references.
|
|
192
200
|
|
|
193
201
|
## 0.13.6 (2023-10-17)
|
|
@@ -254,7 +262,7 @@
|
|
|
254
262
|
|
|
255
263
|
## 0.11.0 (2021-11-17)
|
|
256
264
|
- Upgrade librdkafka to 1.8.2
|
|
257
|
-
- Bump supported minimum Ruby version to 2.6
|
|
265
|
+
- **[EOL]** Bump supported minimum Ruby version to 2.6
|
|
258
266
|
- Better homebrew path detection
|
|
259
267
|
|
|
260
268
|
## 0.10.0 (2021-09-07)
|
data/README.md
CHANGED
|
@@ -63,6 +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.23.x (2025-11-01) | 2.12.1 (2025-10-16) | yes |
|
|
66
67
|
| 0.22.x (2025-09-26) | 2.11.1 (2025-08-18) | yes |
|
|
67
68
|
| 0.21.x (2025-08-18) | 2.11.0 (2025-07-03) | yes |
|
|
68
69
|
| 0.20.x (2025-07-17) | 2.8.0 (2025-01-07) | yes |
|
data/docker-compose-ssl.yml
CHANGED
data/docker-compose.yml
CHANGED
data/ext/librdkafka.so
CHANGED
|
Binary file
|
data/karafka-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'
|
|
@@ -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
|
@@ -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.23.0"
|
|
5
|
+
LIBRDKAFKA_VERSION = "2.12.1"
|
|
6
|
+
LIBRDKAFKA_SOURCE_SHA256 = "ec103fa05cb0f251e375f6ea0b6112cfc9d0acd977dc5b69fdc54242ba38a16f"
|
|
7
7
|
end
|
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.23.0
|
|
5
5
|
platform: aarch64-linux-gnu
|
|
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
|