rdkafka 0.21.0 → 0.22.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +3 -0
  3. data/.github/workflows/ci_linux_x86_64_gnu.yml +271 -0
  4. data/.github/workflows/ci_linux_x86_64_musl.yml +194 -0
  5. data/.github/workflows/ci_macos_arm64.yml +284 -0
  6. data/.github/workflows/push_linux_x86_64_gnu.yml +65 -0
  7. data/.github/workflows/push_linux_x86_64_musl.yml +79 -0
  8. data/.github/workflows/push_macos_arm64.yml +54 -0
  9. data/.github/workflows/push_ruby.yml +37 -0
  10. data/.github/workflows/verify-action-pins.yml +16 -0
  11. data/.ruby-version +1 -1
  12. data/CHANGELOG.md +27 -0
  13. data/README.md +3 -2
  14. data/Rakefile +0 -2
  15. data/docker-compose.yml +1 -1
  16. data/ext/Rakefile +1 -1
  17. data/ext/build_common.sh +361 -0
  18. data/ext/build_linux_x86_64_gnu.sh +306 -0
  19. data/ext/build_linux_x86_64_musl.sh +763 -0
  20. data/ext/build_macos_arm64.sh +550 -0
  21. data/lib/rdkafka/bindings.rb +31 -5
  22. data/lib/rdkafka/config.rb +8 -4
  23. data/lib/rdkafka/consumer/headers.rb +14 -3
  24. data/lib/rdkafka/native_kafka.rb +8 -2
  25. data/lib/rdkafka/producer/partitions_count_cache.rb +216 -0
  26. data/lib/rdkafka/producer.rb +70 -41
  27. data/lib/rdkafka/version.rb +1 -1
  28. data/lib/rdkafka.rb +1 -0
  29. data/rdkafka.gemspec +27 -10
  30. data/renovate.json +87 -1
  31. data/spec/rdkafka/admin_spec.rb +229 -12
  32. data/spec/rdkafka/bindings_spec.rb +0 -33
  33. data/spec/rdkafka/config_spec.rb +17 -15
  34. data/spec/rdkafka/consumer/headers_spec.rb +26 -10
  35. data/spec/rdkafka/consumer_spec.rb +74 -15
  36. data/spec/rdkafka/metadata_spec.rb +2 -2
  37. data/spec/rdkafka/producer/partitions_count_cache_spec.rb +359 -0
  38. data/spec/rdkafka/producer_spec.rb +531 -8
  39. data/spec/spec_helper.rb +30 -7
  40. metadata +45 -87
  41. checksums.yaml.gz.sig +0 -0
  42. data/.github/workflows/ci.yml +0 -83
  43. data/Guardfile +0 -19
  44. data/certs/cert.pem +0 -26
  45. data.tar.gz.sig +0 -0
  46. metadata.gz.sig +0 -0
metadata CHANGED
@@ -1,41 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
8
8
  - Maciej Mensfeld
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
14
- YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
15
- MB4XDTI0MDgyMzEwMTkyMFoXDTQ5MDgxNzEwMTkyMFowPzEQMA4GA1UEAwwHY29u
16
- dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
17
- bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjLhLjQqUlNayxkXnO+
18
- PsmCDs/KFIzhrsYMfLZRZNaWmzV3ujljMOdDjd4snM2X06C41iVdQPWjpe3j8vVe
19
- ZXEWR/twSbOP6Eeg8WVH2wCOo0x5i7yhVn4UBLH4JpfEMCbemVcWQ9ry9OMg4WpH
20
- Uu4dRwxFV7hzCz3p0QfNLRI4miAxnGWcnlD98IJRjBAksTuR1Llj0vbOrDGsL9ZT
21
- JeXP2gdRLd8SqzAFJEWrbeTBCBU7gfSh3oMg5SVDLjaqf7Kz5wC/8bDZydzanOxB
22
- T6CDXPsCnllmvTNx2ei2T5rGYJOzJeNTmJLLK6hJWUlAvaQSvCwZRvFJ0tVGLEoS
23
- flqSr6uGyyl1eMUsNmsH4BqPEYcAV6P2PKTv2vUR8AP0raDvZ3xL1TKvfRb8xRpo
24
- vPopCGlY5XBWEc6QERHfVLTIVsjnls2/Ujj4h8/TSfqqYnaHKefIMLbuD/tquMjD
25
- iWQsW2qStBV0T+U7FijKxVfrfqZP7GxQmDAc9o1iiyAa3QIDAQABo3cwdTAJBgNV
26
- HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU3O4dTXmvE7YpAkszGzR9DdL9
27
- sbEwHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
28
- bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAVKTfoLXn7mqdSxIR
29
- eqxcR6Huudg1jes81s1+X0uiRTR3hxxKZ3Y82cPsee9zYWyBrN8TA4KA0WILTru7
30
- Ygxvzha0SRPsSiaKLmgOJ+61ebI4+bOORzIJLpD6GxCxu1r7MI4+0r1u1xe0EWi8
31
- agkVo1k4Vi8cKMLm6Gl9b3wG9zQBw6fcgKwmpjKiNnOLP+OytzUANrIUJjoq6oal
32
- TC+f/Uc0TLaRqUaW/bejxzDWWHoM3SU6aoLPuerglzp9zZVzihXwx3jPLUVKDFpF
33
- Rl2lcBDxlpYGueGo0/oNzGJAAy6js8jhtHC9+19PD53vk7wHtFTZ/0ugDQYnwQ+x
34
- oml2fAAuVWpTBCgOVFe6XCQpMKopzoxQ1PjKztW2KYxgJdIBX87SnL3aWuBQmhRd
35
- i9zWxov0mr44TWegTVeypcWGd/0nxu1+QHVNHJrpqlPBRvwQsUm7fwmRInGpcaB8
36
- ap8wNYvryYzrzvzUxIVFBVM5PacgkFqRmolCa8I7tdKQN+R1
37
- -----END CERTIFICATE-----
38
- date: 2025-02-13 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 1980-01-02 00:00:00.000000000 Z
39
12
  dependencies:
40
13
  - !ruby/object:Gem::Dependency
41
14
  name: ffi
@@ -51,6 +24,20 @@ dependencies:
51
24
  - - "~>"
52
25
  - !ruby/object:Gem::Version
53
26
  version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: logger
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
54
41
  - !ruby/object:Gem::Dependency
55
42
  name: mini_portile2
56
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +67,7 @@ dependencies:
80
67
  - !ruby/object:Gem::Version
81
68
  version: '12'
82
69
  - !ruby/object:Gem::Dependency
83
- name: pry
70
+ name: ostruct
84
71
  requirement: !ruby/object:Gem::Requirement
85
72
  requirements:
86
73
  - - ">="
@@ -94,21 +81,7 @@ dependencies:
94
81
  - !ruby/object:Gem::Version
95
82
  version: '0'
96
83
  - !ruby/object:Gem::Dependency
97
- name: rspec
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '3.5'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '3.5'
110
- - !ruby/object:Gem::Dependency
111
- name: rake
84
+ name: pry
112
85
  requirement: !ruby/object:Gem::Requirement
113
86
  requirements:
114
87
  - - ">="
@@ -122,21 +95,21 @@ dependencies:
122
95
  - !ruby/object:Gem::Version
123
96
  version: '0'
124
97
  - !ruby/object:Gem::Dependency
125
- name: simplecov
98
+ name: rspec
126
99
  requirement: !ruby/object:Gem::Requirement
127
100
  requirements:
128
- - - ">="
101
+ - - "~>"
129
102
  - !ruby/object:Gem::Version
130
- version: '0'
103
+ version: '3.5'
131
104
  type: :development
132
105
  prerelease: false
133
106
  version_requirements: !ruby/object:Gem::Requirement
134
107
  requirements:
135
- - - ">="
108
+ - - "~>"
136
109
  - !ruby/object:Gem::Version
137
- version: '0'
110
+ version: '3.5'
138
111
  - !ruby/object:Gem::Dependency
139
- name: guard
112
+ name: rake
140
113
  requirement: !ruby/object:Gem::Requirement
141
114
  requirements:
142
115
  - - ">="
@@ -150,7 +123,7 @@ dependencies:
150
123
  - !ruby/object:Gem::Version
151
124
  version: '0'
152
125
  - !ruby/object:Gem::Dependency
153
- name: guard-rspec
126
+ name: simplecov
154
127
  requirement: !ruby/object:Gem::Requirement
155
128
  requirements:
156
129
  - - ">="
@@ -171,8 +144,16 @@ extensions:
171
144
  - ext/Rakefile
172
145
  extra_rdoc_files: []
173
146
  files:
147
+ - ".github/CODEOWNERS"
174
148
  - ".github/FUNDING.yml"
175
- - ".github/workflows/ci.yml"
149
+ - ".github/workflows/ci_linux_x86_64_gnu.yml"
150
+ - ".github/workflows/ci_linux_x86_64_musl.yml"
151
+ - ".github/workflows/ci_macos_arm64.yml"
152
+ - ".github/workflows/push_linux_x86_64_gnu.yml"
153
+ - ".github/workflows/push_linux_x86_64_musl.yml"
154
+ - ".github/workflows/push_macos_arm64.yml"
155
+ - ".github/workflows/push_ruby.yml"
156
+ - ".github/workflows/verify-action-pins.yml"
176
157
  - ".gitignore"
177
158
  - ".rspec"
178
159
  - ".ruby-gemset"
@@ -180,16 +161,18 @@ files:
180
161
  - ".yardopts"
181
162
  - CHANGELOG.md
182
163
  - Gemfile
183
- - Guardfile
184
164
  - MIT-LICENSE
185
165
  - README.md
186
166
  - Rakefile
187
- - certs/cert.pem
188
167
  - dist/librdkafka-2.8.0.tar.gz
189
168
  - dist/patches/rdkafka_global_init.patch
190
169
  - docker-compose.yml
191
170
  - ext/README.md
192
171
  - ext/Rakefile
172
+ - ext/build_common.sh
173
+ - ext/build_linux_x86_64_gnu.sh
174
+ - ext/build_linux_x86_64_musl.sh
175
+ - ext/build_macos_arm64.sh
193
176
  - lib/rdkafka.rb
194
177
  - lib/rdkafka/abstract_handle.rb
195
178
  - lib/rdkafka/admin.rb
@@ -230,6 +213,7 @@ files:
230
213
  - lib/rdkafka/producer.rb
231
214
  - lib/rdkafka/producer/delivery_handle.rb
232
215
  - lib/rdkafka/producer/delivery_report.rb
216
+ - lib/rdkafka/producer/partitions_count_cache.rb
233
217
  - lib/rdkafka/version.rb
234
218
  - rdkafka.gemspec
235
219
  - renovate.json
@@ -258,6 +242,7 @@ files:
258
242
  - spec/rdkafka/native_kafka_spec.rb
259
243
  - spec/rdkafka/producer/delivery_handle_spec.rb
260
244
  - spec/rdkafka/producer/delivery_report_spec.rb
245
+ - spec/rdkafka/producer/partitions_count_cache_spec.rb
261
246
  - spec/rdkafka/producer_spec.rb
262
247
  - spec/spec_helper.rb
263
248
  licenses:
@@ -265,10 +250,10 @@ licenses:
265
250
  metadata:
266
251
  funding_uri: https://karafka.io/#become-pro
267
252
  homepage_uri: https://karafka.io
268
- changelog_uri: https://github.com/karafka/rdkafka-ruby/blob/main/CHANGELOG.md
253
+ changelog_uri: https://karafka.io/docs/Changelog-Rdkafka
269
254
  bug_tracker_uri: https://github.com/karafka/rdkafka-ruby/issues
270
255
  source_code_uri: https://github.com/karafka/rdkafka-ruby
271
- documentation_uri: https://github.com/karafka/rdkafka-ruby/blob/main/README.md
256
+ documentation_uri: https://karafka.io/docs
272
257
  rubygems_mfa_required: 'true'
273
258
  rdoc_options: []
274
259
  require_paths:
@@ -284,36 +269,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
269
  - !ruby/object:Gem::Version
285
270
  version: '0'
286
271
  requirements: []
287
- rubygems_version: 3.6.2
272
+ rubygems_version: 3.6.9
288
273
  specification_version: 4
289
274
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
290
275
  It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
291
276
  and Ruby 2.7+.
292
- test_files:
293
- - spec/rdkafka/abstract_handle_spec.rb
294
- - spec/rdkafka/admin/create_acl_handle_spec.rb
295
- - spec/rdkafka/admin/create_acl_report_spec.rb
296
- - spec/rdkafka/admin/create_topic_handle_spec.rb
297
- - spec/rdkafka/admin/create_topic_report_spec.rb
298
- - spec/rdkafka/admin/delete_acl_handle_spec.rb
299
- - spec/rdkafka/admin/delete_acl_report_spec.rb
300
- - spec/rdkafka/admin/delete_topic_handle_spec.rb
301
- - spec/rdkafka/admin/delete_topic_report_spec.rb
302
- - spec/rdkafka/admin/describe_acl_handle_spec.rb
303
- - spec/rdkafka/admin/describe_acl_report_spec.rb
304
- - spec/rdkafka/admin_spec.rb
305
- - spec/rdkafka/bindings_spec.rb
306
- - spec/rdkafka/callbacks_spec.rb
307
- - spec/rdkafka/config_spec.rb
308
- - spec/rdkafka/consumer/headers_spec.rb
309
- - spec/rdkafka/consumer/message_spec.rb
310
- - spec/rdkafka/consumer/partition_spec.rb
311
- - spec/rdkafka/consumer/topic_partition_list_spec.rb
312
- - spec/rdkafka/consumer_spec.rb
313
- - spec/rdkafka/error_spec.rb
314
- - spec/rdkafka/metadata_spec.rb
315
- - spec/rdkafka/native_kafka_spec.rb
316
- - spec/rdkafka/producer/delivery_handle_spec.rb
317
- - spec/rdkafka/producer/delivery_report_spec.rb
318
- - spec/rdkafka/producer_spec.rb
319
- - spec/spec_helper.rb
277
+ test_files: []
checksums.yaml.gz.sig DELETED
Binary file
@@ -1,83 +0,0 @@
1
- name: ci
2
-
3
- concurrency:
4
- group: ${{ github.workflow }}-${{ github.ref }}
5
- cancel-in-progress: true
6
-
7
- on:
8
- pull_request:
9
- push:
10
- schedule:
11
- - cron: '0 1 * * *'
12
-
13
- env:
14
- BUNDLE_RETRY: 6
15
- BUNDLE_JOBS: 4
16
-
17
- jobs:
18
- specs:
19
- timeout-minutes: 30
20
- runs-on: ubuntu-latest
21
- strategy:
22
- fail-fast: false
23
- matrix:
24
- ruby:
25
- - '3.4'
26
- - '3.3'
27
- - '3.2'
28
- - '3.1'
29
- include:
30
- - ruby: '3.4'
31
- coverage: 'true'
32
- steps:
33
- - uses: actions/checkout@v4
34
- - name: Install package dependencies
35
- run: "[ -e $APT_DEPS ] || sudo apt-get install -y --no-install-recommends $APT_DEPS"
36
-
37
- - name: Start Kafka with docker compose
38
- run: |
39
- docker compose up -d || (sleep 5 && docker compose up -d)
40
-
41
- - name: Set up Ruby
42
- uses: ruby/setup-ruby@v1
43
- with:
44
- ruby-version: ${{matrix.ruby}}
45
- bundler-cache: true
46
-
47
- - name: Run all specs
48
- env:
49
- GITHUB_COVERAGE: ${{matrix.coverage}}
50
-
51
- run: |
52
- set -e
53
- bundle install --path vendor/bundle
54
- cd ext && bundle exec rake
55
- cd ..
56
- bundle exec rspec
57
-
58
-
59
- macos_build:
60
- timeout-minutes: 30
61
- runs-on: macos-latest
62
- strategy:
63
- fail-fast: false
64
- matrix:
65
- ruby:
66
- - '3.4'
67
- - '3.3'
68
- - '3.2'
69
- - '3.1'
70
- steps:
71
- - uses: actions/checkout@v4
72
-
73
- - name: Set up Ruby
74
- uses: ruby/setup-ruby@v1
75
- with:
76
- ruby-version: ${{matrix.ruby}}
77
- bundler-cache: false
78
-
79
- - name: Build rdkafka-ruby
80
- run: |
81
- set -e
82
- bundle install --path vendor/bundle
83
- cd ext && bundle exec rake
data/Guardfile DELETED
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- logger level: :error
4
-
5
- guard :rspec, cmd: "bundle exec rspec --format #{ENV.fetch("FORMAT", "documentation")}" do
6
- require "guard/rspec/dsl"
7
- dsl = Guard::RSpec::Dsl.new(self)
8
-
9
- # Ruby files
10
- ruby = dsl.ruby
11
- dsl.watch_spec_files_for(ruby.lib_files)
12
- watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
13
-
14
- # RSpec files
15
- rspec = dsl.rspec
16
- watch(rspec.spec_helper) { rspec.spec_dir }
17
- watch(rspec.spec_support) { rspec.spec_dir }
18
- watch(rspec.spec_files)
19
- end
data/certs/cert.pem DELETED
@@ -1,26 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
3
- YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
4
- MB4XDTI0MDgyMzEwMTkyMFoXDTQ5MDgxNzEwMTkyMFowPzEQMA4GA1UEAwwHY29u
5
- dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
6
- bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjLhLjQqUlNayxkXnO+
7
- PsmCDs/KFIzhrsYMfLZRZNaWmzV3ujljMOdDjd4snM2X06C41iVdQPWjpe3j8vVe
8
- ZXEWR/twSbOP6Eeg8WVH2wCOo0x5i7yhVn4UBLH4JpfEMCbemVcWQ9ry9OMg4WpH
9
- Uu4dRwxFV7hzCz3p0QfNLRI4miAxnGWcnlD98IJRjBAksTuR1Llj0vbOrDGsL9ZT
10
- JeXP2gdRLd8SqzAFJEWrbeTBCBU7gfSh3oMg5SVDLjaqf7Kz5wC/8bDZydzanOxB
11
- T6CDXPsCnllmvTNx2ei2T5rGYJOzJeNTmJLLK6hJWUlAvaQSvCwZRvFJ0tVGLEoS
12
- flqSr6uGyyl1eMUsNmsH4BqPEYcAV6P2PKTv2vUR8AP0raDvZ3xL1TKvfRb8xRpo
13
- vPopCGlY5XBWEc6QERHfVLTIVsjnls2/Ujj4h8/TSfqqYnaHKefIMLbuD/tquMjD
14
- iWQsW2qStBV0T+U7FijKxVfrfqZP7GxQmDAc9o1iiyAa3QIDAQABo3cwdTAJBgNV
15
- HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU3O4dTXmvE7YpAkszGzR9DdL9
16
- sbEwHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
17
- bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAVKTfoLXn7mqdSxIR
18
- eqxcR6Huudg1jes81s1+X0uiRTR3hxxKZ3Y82cPsee9zYWyBrN8TA4KA0WILTru7
19
- Ygxvzha0SRPsSiaKLmgOJ+61ebI4+bOORzIJLpD6GxCxu1r7MI4+0r1u1xe0EWi8
20
- agkVo1k4Vi8cKMLm6Gl9b3wG9zQBw6fcgKwmpjKiNnOLP+OytzUANrIUJjoq6oal
21
- TC+f/Uc0TLaRqUaW/bejxzDWWHoM3SU6aoLPuerglzp9zZVzihXwx3jPLUVKDFpF
22
- Rl2lcBDxlpYGueGo0/oNzGJAAy6js8jhtHC9+19PD53vk7wHtFTZ/0ugDQYnwQ+x
23
- oml2fAAuVWpTBCgOVFe6XCQpMKopzoxQ1PjKztW2KYxgJdIBX87SnL3aWuBQmhRd
24
- i9zWxov0mr44TWegTVeypcWGd/0nxu1+QHVNHJrpqlPBRvwQsUm7fwmRInGpcaB8
25
- ap8wNYvryYzrzvzUxIVFBVM5PacgkFqRmolCa8I7tdKQN+R1
26
- -----END CERTIFICATE-----
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file