rdkafka 0.12.0 → 0.15.1

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 (86) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.github/workflows/ci.yml +57 -0
  5. data/.gitignore +4 -0
  6. data/.rspec +1 -0
  7. data/.ruby-gemset +1 -0
  8. data/.ruby-version +1 -0
  9. data/CHANGELOG.md +155 -93
  10. data/Gemfile +2 -0
  11. data/{LICENSE → MIT-LICENSE} +2 -1
  12. data/README.md +76 -29
  13. data/Rakefile +2 -0
  14. data/certs/cert_chain.pem +26 -0
  15. data/docker-compose.yml +18 -15
  16. data/ext/README.md +1 -1
  17. data/ext/Rakefile +46 -27
  18. data/lib/rdkafka/abstract_handle.rb +41 -25
  19. data/lib/rdkafka/admin/acl_binding_result.rb +51 -0
  20. data/lib/rdkafka/admin/create_acl_handle.rb +28 -0
  21. data/lib/rdkafka/admin/create_acl_report.rb +24 -0
  22. data/lib/rdkafka/admin/create_partitions_handle.rb +27 -0
  23. data/lib/rdkafka/admin/create_partitions_report.rb +6 -0
  24. data/lib/rdkafka/admin/create_topic_handle.rb +2 -0
  25. data/lib/rdkafka/admin/create_topic_report.rb +2 -0
  26. data/lib/rdkafka/admin/delete_acl_handle.rb +30 -0
  27. data/lib/rdkafka/admin/delete_acl_report.rb +23 -0
  28. data/lib/rdkafka/admin/delete_groups_handle.rb +28 -0
  29. data/lib/rdkafka/admin/delete_groups_report.rb +24 -0
  30. data/lib/rdkafka/admin/delete_topic_handle.rb +2 -0
  31. data/lib/rdkafka/admin/delete_topic_report.rb +2 -0
  32. data/lib/rdkafka/admin/describe_acl_handle.rb +30 -0
  33. data/lib/rdkafka/admin/describe_acl_report.rb +23 -0
  34. data/lib/rdkafka/admin.rb +494 -35
  35. data/lib/rdkafka/bindings.rb +180 -41
  36. data/lib/rdkafka/callbacks.rb +202 -1
  37. data/lib/rdkafka/config.rb +62 -25
  38. data/lib/rdkafka/consumer/headers.rb +24 -9
  39. data/lib/rdkafka/consumer/message.rb +3 -1
  40. data/lib/rdkafka/consumer/partition.rb +2 -0
  41. data/lib/rdkafka/consumer/topic_partition_list.rb +13 -8
  42. data/lib/rdkafka/consumer.rb +243 -111
  43. data/lib/rdkafka/error.rb +15 -0
  44. data/lib/rdkafka/helpers/time.rb +14 -0
  45. data/lib/rdkafka/metadata.rb +25 -2
  46. data/lib/rdkafka/native_kafka.rb +120 -0
  47. data/lib/rdkafka/producer/delivery_handle.rb +16 -2
  48. data/lib/rdkafka/producer/delivery_report.rb +22 -2
  49. data/lib/rdkafka/producer.rb +151 -21
  50. data/lib/rdkafka/version.rb +5 -3
  51. data/lib/rdkafka.rb +24 -2
  52. data/rdkafka.gemspec +21 -5
  53. data/renovate.json +6 -0
  54. data/spec/rdkafka/abstract_handle_spec.rb +1 -1
  55. data/spec/rdkafka/admin/create_acl_handle_spec.rb +56 -0
  56. data/spec/rdkafka/admin/create_acl_report_spec.rb +18 -0
  57. data/spec/rdkafka/admin/create_topic_handle_spec.rb +1 -1
  58. data/spec/rdkafka/admin/create_topic_report_spec.rb +1 -1
  59. data/spec/rdkafka/admin/delete_acl_handle_spec.rb +85 -0
  60. data/spec/rdkafka/admin/delete_acl_report_spec.rb +72 -0
  61. data/spec/rdkafka/admin/delete_topic_handle_spec.rb +1 -1
  62. data/spec/rdkafka/admin/delete_topic_report_spec.rb +1 -1
  63. data/spec/rdkafka/admin/describe_acl_handle_spec.rb +85 -0
  64. data/spec/rdkafka/admin/describe_acl_report_spec.rb +73 -0
  65. data/spec/rdkafka/admin_spec.rb +209 -5
  66. data/spec/rdkafka/bindings_spec.rb +2 -1
  67. data/spec/rdkafka/callbacks_spec.rb +1 -1
  68. data/spec/rdkafka/config_spec.rb +24 -3
  69. data/spec/rdkafka/consumer/headers_spec.rb +60 -0
  70. data/spec/rdkafka/consumer/message_spec.rb +1 -1
  71. data/spec/rdkafka/consumer/partition_spec.rb +1 -1
  72. data/spec/rdkafka/consumer/topic_partition_list_spec.rb +20 -1
  73. data/spec/rdkafka/consumer_spec.rb +352 -61
  74. data/spec/rdkafka/error_spec.rb +1 -1
  75. data/spec/rdkafka/metadata_spec.rb +4 -3
  76. data/spec/rdkafka/{producer/client_spec.rb → native_kafka_spec.rb} +13 -35
  77. data/spec/rdkafka/producer/delivery_handle_spec.rb +4 -1
  78. data/spec/rdkafka/producer/delivery_report_spec.rb +11 -3
  79. data/spec/rdkafka/producer_spec.rb +234 -22
  80. data/spec/spec_helper.rb +20 -2
  81. data.tar.gz.sig +0 -0
  82. metadata +81 -17
  83. metadata.gz.sig +0 -0
  84. data/.semaphore/semaphore.yml +0 -23
  85. data/bin/console +0 -11
  86. data/lib/rdkafka/producer/client.rb +0 -47
metadata CHANGED
@@ -1,14 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
8
+ - Maciej Mensfeld
8
9
  autorequire:
9
10
  bindir: bin
10
- cert_chain: []
11
- date: 2022-06-17 00:00:00.000000000 Z
11
+ cert_chain:
12
+ - |
13
+ -----BEGIN CERTIFICATE-----
14
+ MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
15
+ YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
16
+ MB4XDTIzMDgyMTA3MjU1NFoXDTI0MDgyMDA3MjU1NFowPzEQMA4GA1UEAwwHY29u
17
+ dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
18
+ bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAOuZpyQKEwsTG9plLat7
19
+ 8bUaNuNBEnouTsNMr6X+XTgvyrAxTuocdsyP1sNCjdS1B8RiiDH1/Nt9qpvlBWon
20
+ sdJ1SYhaWNVfqiYStTDnCx3PRMmHRdD4KqUWKpN6VpZ1O/Zu+9Mw0COmvXgZuuO9
21
+ wMSJkXRo6dTCfMedLAIxjMeBIxtoLR2e6Jm6MR8+8WYYVWrO9kSOOt5eKQLBY7aK
22
+ b/Dc40EcJKPg3Z30Pia1M9ZyRlb6SOj6SKpHRqc7vbVQxjEw6Jjal1lZ49m3YZMd
23
+ ArMAs9lQZNdSw5/UX6HWWURLowg6k10RnhTUtYyzO9BFev0JFJftHnmuk8vtb+SD
24
+ 5VPmjFXg2VOcw0B7FtG75Vackk8QKfgVe3nSPhVpew2CSPlbJzH80wChbr19+e3+
25
+ YGr1tOiaJrL6c+PNmb0F31NXMKpj/r+n15HwlTMRxQrzFcgjBlxf2XFGnPQXHhBm
26
+ kp1OFnEq4GG9sON4glRldkwzi/f/fGcZmo5fm3d+0ZdNgwIDAQABo3cwdTAJBgNV
27
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUPVH5+dLA80A1kJ2Uz5iGwfOa
28
+ 1+swHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
29
+ bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAnpa0jcN7JzREHMTQ
30
+ bfZ+xcvlrzuROMY6A3zIZmQgbnoZZNuX4cMRrT1p1HuwXpxdpHPw7dDjYqWw3+1h
31
+ 3mXLeMuk7amjQpYoSWU/OIZMhIsARra22UN8qkkUlUj3AwTaChVKN/bPJOM2DzfU
32
+ kz9vUgLeYYFfQbZqeI6SsM7ltilRV4W8D9yNUQQvOxCFxtLOetJ00fC/E7zMUzbK
33
+ IBwYFQYsbI6XQzgAIPW6nGSYKgRhkfpmquXSNKZRIQ4V6bFrufa+DzD0bt2ZA3ah
34
+ fMmJguyb5L2Gf1zpDXzFSPMG7YQFLzwYz1zZZvOU7/UCpQsHpID/YxqDp4+Dgb+Y
35
+ qma0whX8UG/gXFV2pYWpYOfpatvahwi+A1TwPQsuZwkkhi1OyF1At3RY+hjSXyav
36
+ AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
37
+ msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
38
+ -----END CERTIFICATE-----
39
+ date: 2024-01-30 00:00:00.000000000 Z
12
40
  dependencies:
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: ffi
@@ -138,34 +166,47 @@ dependencies:
138
166
  version: '0'
139
167
  description: Modern Kafka client library for Ruby based on librdkafka
140
168
  email:
141
- - thijs@appsignal.com
142
- executables:
143
- - console
169
+ - contact@karafka.io
170
+ executables: []
144
171
  extensions:
145
172
  - ext/Rakefile
146
173
  extra_rdoc_files: []
147
174
  files:
175
+ - ".github/FUNDING.yml"
176
+ - ".github/workflows/ci.yml"
148
177
  - ".gitignore"
149
178
  - ".rspec"
150
- - ".semaphore/semaphore.yml"
179
+ - ".ruby-gemset"
180
+ - ".ruby-version"
151
181
  - ".yardopts"
152
182
  - CHANGELOG.md
153
183
  - Gemfile
154
184
  - Guardfile
155
- - LICENSE
185
+ - MIT-LICENSE
156
186
  - README.md
157
187
  - Rakefile
158
- - bin/console
188
+ - certs/cert_chain.pem
159
189
  - docker-compose.yml
160
190
  - ext/README.md
161
191
  - ext/Rakefile
162
192
  - lib/rdkafka.rb
163
193
  - lib/rdkafka/abstract_handle.rb
164
194
  - lib/rdkafka/admin.rb
195
+ - lib/rdkafka/admin/acl_binding_result.rb
196
+ - lib/rdkafka/admin/create_acl_handle.rb
197
+ - lib/rdkafka/admin/create_acl_report.rb
198
+ - lib/rdkafka/admin/create_partitions_handle.rb
199
+ - lib/rdkafka/admin/create_partitions_report.rb
165
200
  - lib/rdkafka/admin/create_topic_handle.rb
166
201
  - lib/rdkafka/admin/create_topic_report.rb
202
+ - lib/rdkafka/admin/delete_acl_handle.rb
203
+ - lib/rdkafka/admin/delete_acl_report.rb
204
+ - lib/rdkafka/admin/delete_groups_handle.rb
205
+ - lib/rdkafka/admin/delete_groups_report.rb
167
206
  - lib/rdkafka/admin/delete_topic_handle.rb
168
207
  - lib/rdkafka/admin/delete_topic_report.rb
208
+ - lib/rdkafka/admin/describe_acl_handle.rb
209
+ - lib/rdkafka/admin/describe_acl_report.rb
169
210
  - lib/rdkafka/bindings.rb
170
211
  - lib/rdkafka/callbacks.rb
171
212
  - lib/rdkafka/config.rb
@@ -175,37 +216,53 @@ files:
175
216
  - lib/rdkafka/consumer/partition.rb
176
217
  - lib/rdkafka/consumer/topic_partition_list.rb
177
218
  - lib/rdkafka/error.rb
219
+ - lib/rdkafka/helpers/time.rb
178
220
  - lib/rdkafka/metadata.rb
221
+ - lib/rdkafka/native_kafka.rb
179
222
  - lib/rdkafka/producer.rb
180
- - lib/rdkafka/producer/client.rb
181
223
  - lib/rdkafka/producer/delivery_handle.rb
182
224
  - lib/rdkafka/producer/delivery_report.rb
183
225
  - lib/rdkafka/version.rb
184
226
  - rdkafka.gemspec
227
+ - renovate.json
185
228
  - spec/rdkafka/abstract_handle_spec.rb
229
+ - spec/rdkafka/admin/create_acl_handle_spec.rb
230
+ - spec/rdkafka/admin/create_acl_report_spec.rb
186
231
  - spec/rdkafka/admin/create_topic_handle_spec.rb
187
232
  - spec/rdkafka/admin/create_topic_report_spec.rb
233
+ - spec/rdkafka/admin/delete_acl_handle_spec.rb
234
+ - spec/rdkafka/admin/delete_acl_report_spec.rb
188
235
  - spec/rdkafka/admin/delete_topic_handle_spec.rb
189
236
  - spec/rdkafka/admin/delete_topic_report_spec.rb
237
+ - spec/rdkafka/admin/describe_acl_handle_spec.rb
238
+ - spec/rdkafka/admin/describe_acl_report_spec.rb
190
239
  - spec/rdkafka/admin_spec.rb
191
240
  - spec/rdkafka/bindings_spec.rb
192
241
  - spec/rdkafka/callbacks_spec.rb
193
242
  - spec/rdkafka/config_spec.rb
243
+ - spec/rdkafka/consumer/headers_spec.rb
194
244
  - spec/rdkafka/consumer/message_spec.rb
195
245
  - spec/rdkafka/consumer/partition_spec.rb
196
246
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
197
247
  - spec/rdkafka/consumer_spec.rb
198
248
  - spec/rdkafka/error_spec.rb
199
249
  - spec/rdkafka/metadata_spec.rb
200
- - spec/rdkafka/producer/client_spec.rb
250
+ - spec/rdkafka/native_kafka_spec.rb
201
251
  - spec/rdkafka/producer/delivery_handle_spec.rb
202
252
  - spec/rdkafka/producer/delivery_report_spec.rb
203
253
  - spec/rdkafka/producer_spec.rb
204
254
  - spec/spec_helper.rb
205
- homepage: https://github.com/thijsc/rdkafka-ruby
255
+ homepage:
206
256
  licenses:
207
257
  - MIT
208
- metadata: {}
258
+ metadata:
259
+ funding_uri: https://karafka.io/#become-pro
260
+ homepage_uri: https://karafka.io
261
+ changelog_uri: https://github.com/karafka/rdkafka-ruby/blob/main/CHANGELOG.md
262
+ bug_tracker_uri: https://github.com/karafka/rdkafka-ruby/issues
263
+ source_code_uri: https://github.com/karafka/rdkafka-ruby
264
+ documentation_uri: https://github.com/karafka/rdkafka-ruby/blob/main/README.md
265
+ rubygems_mfa_required: 'true'
209
266
  post_install_message:
210
267
  rdoc_options: []
211
268
  require_paths:
@@ -214,36 +271,43 @@ required_ruby_version: !ruby/object:Gem::Requirement
214
271
  requirements:
215
272
  - - ">="
216
273
  - !ruby/object:Gem::Version
217
- version: '2.6'
274
+ version: '2.7'
218
275
  required_rubygems_version: !ruby/object:Gem::Requirement
219
276
  requirements:
220
277
  - - ">="
221
278
  - !ruby/object:Gem::Version
222
279
  version: '0'
223
280
  requirements: []
224
- rubygems_version: 3.0.3
281
+ rubygems_version: 3.5.3
225
282
  signing_key:
226
283
  specification_version: 4
227
284
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
228
285
  It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
229
- and Ruby 2.4+.
286
+ and Ruby 2.7+.
230
287
  test_files:
231
288
  - spec/rdkafka/abstract_handle_spec.rb
289
+ - spec/rdkafka/admin/create_acl_handle_spec.rb
290
+ - spec/rdkafka/admin/create_acl_report_spec.rb
232
291
  - spec/rdkafka/admin/create_topic_handle_spec.rb
233
292
  - spec/rdkafka/admin/create_topic_report_spec.rb
293
+ - spec/rdkafka/admin/delete_acl_handle_spec.rb
294
+ - spec/rdkafka/admin/delete_acl_report_spec.rb
234
295
  - spec/rdkafka/admin/delete_topic_handle_spec.rb
235
296
  - spec/rdkafka/admin/delete_topic_report_spec.rb
297
+ - spec/rdkafka/admin/describe_acl_handle_spec.rb
298
+ - spec/rdkafka/admin/describe_acl_report_spec.rb
236
299
  - spec/rdkafka/admin_spec.rb
237
300
  - spec/rdkafka/bindings_spec.rb
238
301
  - spec/rdkafka/callbacks_spec.rb
239
302
  - spec/rdkafka/config_spec.rb
303
+ - spec/rdkafka/consumer/headers_spec.rb
240
304
  - spec/rdkafka/consumer/message_spec.rb
241
305
  - spec/rdkafka/consumer/partition_spec.rb
242
306
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
243
307
  - spec/rdkafka/consumer_spec.rb
244
308
  - spec/rdkafka/error_spec.rb
245
309
  - spec/rdkafka/metadata_spec.rb
246
- - spec/rdkafka/producer/client_spec.rb
310
+ - spec/rdkafka/native_kafka_spec.rb
247
311
  - spec/rdkafka/producer/delivery_handle_spec.rb
248
312
  - spec/rdkafka/producer/delivery_report_spec.rb
249
313
  - spec/rdkafka/producer_spec.rb
metadata.gz.sig ADDED
Binary file
@@ -1,23 +0,0 @@
1
- version: v1.0
2
- name: Rdkafka Ruby
3
-
4
- agent:
5
- machine:
6
- type: e1-standard-4
7
- os_image: ubuntu1804
8
-
9
- blocks:
10
- - name: Run specs
11
- task:
12
- jobs:
13
- - name: bundle exec rspec
14
- matrix:
15
- - env_var: RUBY_VERSION
16
- values: [ "2.6.8", "2.7.4", "3.0.2", "jruby-9.3.1.0"]
17
- commands:
18
- - sem-version ruby $RUBY_VERSION
19
- - checkout
20
- - bundle install --path vendor/bundle
21
- - cd ext && bundle exec rake && cd ..
22
- - docker-compose up -d --no-recreate
23
- - bundle exec rspec
data/bin/console DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # frozen_string_literal: true
4
-
5
- ENV["IRBRC"] = File.join(File.dirname(__FILE__), ".irbrc")
6
-
7
- require "bundler/setup"
8
- require "rdkafka"
9
-
10
- require "irb"
11
- IRB.start(__FILE__)
@@ -1,47 +0,0 @@
1
- module Rdkafka
2
- class Producer
3
- class Client
4
- def initialize(native)
5
- @native = native
6
-
7
- # Start thread to poll client for delivery callbacks
8
- @polling_thread = Thread.new do
9
- loop do
10
- Rdkafka::Bindings.rd_kafka_poll(native, 250)
11
- # Exit thread if closing and the poll queue is empty
12
- if Thread.current[:closing] && Rdkafka::Bindings.rd_kafka_outq_len(native) == 0
13
- break
14
- end
15
- end
16
- end
17
- @polling_thread.abort_on_exception = true
18
- @polling_thread[:closing] = false
19
- end
20
-
21
- def native
22
- @native
23
- end
24
-
25
- def finalizer
26
- ->(_) { close }
27
- end
28
-
29
- def closed?
30
- @native.nil?
31
- end
32
-
33
- def close(object_id=nil)
34
- return unless @native
35
-
36
- # Indicate to polling thread that we're closing
37
- @polling_thread[:closing] = true
38
- # Wait for the polling thread to finish up
39
- @polling_thread.join
40
-
41
- Rdkafka::Bindings.rd_kafka_destroy(@native)
42
-
43
- @native = nil
44
- end
45
- end
46
- end
47
- end