rdkafka 0.12.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.github/workflows/ci.yml +58 -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 +141 -93
  10. data/Gemfile +2 -0
  11. data/{LICENSE → MIT-LICENSE} +2 -1
  12. data/README.md +64 -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 +3 -1
  18. data/lib/rdkafka/abstract_handle.rb +41 -25
  19. data/lib/rdkafka/admin/acl_binding_result.rb +37 -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 +175 -40
  36. data/lib/rdkafka/callbacks.rb +194 -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 +219 -102
  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 +5 -2
  48. data/lib/rdkafka/producer/delivery_report.rb +9 -2
  49. data/lib/rdkafka/producer.rb +117 -17
  50. data/lib/rdkafka/version.rb +5 -3
  51. data/lib/rdkafka.rb +24 -2
  52. data/rdkafka.gemspec +19 -3
  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 +71 -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 +72 -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 +332 -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 +7 -3
  79. data/spec/rdkafka/producer_spec.rb +208 -20
  80. data/spec/spec_helper.rb +20 -2
  81. data.tar.gz.sig +3 -0
  82. metadata +79 -16
  83. metadata.gz.sig +3 -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,41 @@
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.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2022-06-17 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250
14
+ YWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv
15
+ MB4XDTIzMDgyMTA3MjU1NFoXDTI0MDgyMDA3MjU1NFowPzEQMA4GA1UEAwwHY29u
16
+ dGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp
17
+ bzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAOuZpyQKEwsTG9plLat7
18
+ 8bUaNuNBEnouTsNMr6X+XTgvyrAxTuocdsyP1sNCjdS1B8RiiDH1/Nt9qpvlBWon
19
+ sdJ1SYhaWNVfqiYStTDnCx3PRMmHRdD4KqUWKpN6VpZ1O/Zu+9Mw0COmvXgZuuO9
20
+ wMSJkXRo6dTCfMedLAIxjMeBIxtoLR2e6Jm6MR8+8WYYVWrO9kSOOt5eKQLBY7aK
21
+ b/Dc40EcJKPg3Z30Pia1M9ZyRlb6SOj6SKpHRqc7vbVQxjEw6Jjal1lZ49m3YZMd
22
+ ArMAs9lQZNdSw5/UX6HWWURLowg6k10RnhTUtYyzO9BFev0JFJftHnmuk8vtb+SD
23
+ 5VPmjFXg2VOcw0B7FtG75Vackk8QKfgVe3nSPhVpew2CSPlbJzH80wChbr19+e3+
24
+ YGr1tOiaJrL6c+PNmb0F31NXMKpj/r+n15HwlTMRxQrzFcgjBlxf2XFGnPQXHhBm
25
+ kp1OFnEq4GG9sON4glRldkwzi/f/fGcZmo5fm3d+0ZdNgwIDAQABo3cwdTAJBgNV
26
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUPVH5+dLA80A1kJ2Uz5iGwfOa
27
+ 1+swHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv
28
+ bnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAnpa0jcN7JzREHMTQ
29
+ bfZ+xcvlrzuROMY6A3zIZmQgbnoZZNuX4cMRrT1p1HuwXpxdpHPw7dDjYqWw3+1h
30
+ 3mXLeMuk7amjQpYoSWU/OIZMhIsARra22UN8qkkUlUj3AwTaChVKN/bPJOM2DzfU
31
+ kz9vUgLeYYFfQbZqeI6SsM7ltilRV4W8D9yNUQQvOxCFxtLOetJ00fC/E7zMUzbK
32
+ IBwYFQYsbI6XQzgAIPW6nGSYKgRhkfpmquXSNKZRIQ4V6bFrufa+DzD0bt2ZA3ah
33
+ fMmJguyb5L2Gf1zpDXzFSPMG7YQFLzwYz1zZZvOU7/UCpQsHpID/YxqDp4+Dgb+Y
34
+ qma0whX8UG/gXFV2pYWpYOfpatvahwi+A1TwPQsuZwkkhi1OyF1At3RY+hjSXyav
35
+ AnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s
36
+ msG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc
37
+ -----END CERTIFICATE-----
38
+ date: 2023-12-03 00:00:00.000000000 Z
12
39
  dependencies:
13
40
  - !ruby/object:Gem::Dependency
14
41
  name: ffi
@@ -138,34 +165,47 @@ dependencies:
138
165
  version: '0'
139
166
  description: Modern Kafka client library for Ruby based on librdkafka
140
167
  email:
141
- - thijs@appsignal.com
142
- executables:
143
- - console
168
+ - contact@karafka.io
169
+ executables: []
144
170
  extensions:
145
171
  - ext/Rakefile
146
172
  extra_rdoc_files: []
147
173
  files:
174
+ - ".github/FUNDING.yml"
175
+ - ".github/workflows/ci.yml"
148
176
  - ".gitignore"
149
177
  - ".rspec"
150
- - ".semaphore/semaphore.yml"
178
+ - ".ruby-gemset"
179
+ - ".ruby-version"
151
180
  - ".yardopts"
152
181
  - CHANGELOG.md
153
182
  - Gemfile
154
183
  - Guardfile
155
- - LICENSE
184
+ - MIT-LICENSE
156
185
  - README.md
157
186
  - Rakefile
158
- - bin/console
187
+ - certs/cert_chain.pem
159
188
  - docker-compose.yml
160
189
  - ext/README.md
161
190
  - ext/Rakefile
162
191
  - lib/rdkafka.rb
163
192
  - lib/rdkafka/abstract_handle.rb
164
193
  - lib/rdkafka/admin.rb
194
+ - lib/rdkafka/admin/acl_binding_result.rb
195
+ - lib/rdkafka/admin/create_acl_handle.rb
196
+ - lib/rdkafka/admin/create_acl_report.rb
197
+ - lib/rdkafka/admin/create_partitions_handle.rb
198
+ - lib/rdkafka/admin/create_partitions_report.rb
165
199
  - lib/rdkafka/admin/create_topic_handle.rb
166
200
  - lib/rdkafka/admin/create_topic_report.rb
201
+ - lib/rdkafka/admin/delete_acl_handle.rb
202
+ - lib/rdkafka/admin/delete_acl_report.rb
203
+ - lib/rdkafka/admin/delete_groups_handle.rb
204
+ - lib/rdkafka/admin/delete_groups_report.rb
167
205
  - lib/rdkafka/admin/delete_topic_handle.rb
168
206
  - lib/rdkafka/admin/delete_topic_report.rb
207
+ - lib/rdkafka/admin/describe_acl_handle.rb
208
+ - lib/rdkafka/admin/describe_acl_report.rb
169
209
  - lib/rdkafka/bindings.rb
170
210
  - lib/rdkafka/callbacks.rb
171
211
  - lib/rdkafka/config.rb
@@ -175,37 +215,53 @@ files:
175
215
  - lib/rdkafka/consumer/partition.rb
176
216
  - lib/rdkafka/consumer/topic_partition_list.rb
177
217
  - lib/rdkafka/error.rb
218
+ - lib/rdkafka/helpers/time.rb
178
219
  - lib/rdkafka/metadata.rb
220
+ - lib/rdkafka/native_kafka.rb
179
221
  - lib/rdkafka/producer.rb
180
- - lib/rdkafka/producer/client.rb
181
222
  - lib/rdkafka/producer/delivery_handle.rb
182
223
  - lib/rdkafka/producer/delivery_report.rb
183
224
  - lib/rdkafka/version.rb
184
225
  - rdkafka.gemspec
226
+ - renovate.json
185
227
  - spec/rdkafka/abstract_handle_spec.rb
228
+ - spec/rdkafka/admin/create_acl_handle_spec.rb
229
+ - spec/rdkafka/admin/create_acl_report_spec.rb
186
230
  - spec/rdkafka/admin/create_topic_handle_spec.rb
187
231
  - spec/rdkafka/admin/create_topic_report_spec.rb
232
+ - spec/rdkafka/admin/delete_acl_handle_spec.rb
233
+ - spec/rdkafka/admin/delete_acl_report_spec.rb
188
234
  - spec/rdkafka/admin/delete_topic_handle_spec.rb
189
235
  - spec/rdkafka/admin/delete_topic_report_spec.rb
236
+ - spec/rdkafka/admin/describe_acl_handle_spec.rb
237
+ - spec/rdkafka/admin/describe_acl_report_spec.rb
190
238
  - spec/rdkafka/admin_spec.rb
191
239
  - spec/rdkafka/bindings_spec.rb
192
240
  - spec/rdkafka/callbacks_spec.rb
193
241
  - spec/rdkafka/config_spec.rb
242
+ - spec/rdkafka/consumer/headers_spec.rb
194
243
  - spec/rdkafka/consumer/message_spec.rb
195
244
  - spec/rdkafka/consumer/partition_spec.rb
196
245
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
197
246
  - spec/rdkafka/consumer_spec.rb
198
247
  - spec/rdkafka/error_spec.rb
199
248
  - spec/rdkafka/metadata_spec.rb
200
- - spec/rdkafka/producer/client_spec.rb
249
+ - spec/rdkafka/native_kafka_spec.rb
201
250
  - spec/rdkafka/producer/delivery_handle_spec.rb
202
251
  - spec/rdkafka/producer/delivery_report_spec.rb
203
252
  - spec/rdkafka/producer_spec.rb
204
253
  - spec/spec_helper.rb
205
- homepage: https://github.com/thijsc/rdkafka-ruby
254
+ homepage:
206
255
  licenses:
207
256
  - MIT
208
- metadata: {}
257
+ metadata:
258
+ funding_uri: https://karafka.io/#become-pro
259
+ homepage_uri: https://karafka.io
260
+ changelog_uri: https://github.com/karafka/rdkafka-ruby/blob/main/CHANGELOG.md
261
+ bug_tracker_uri: https://github.com/karafka/rdkafka-ruby/issues
262
+ source_code_uri: https://github.com/karafka/rdkafka-ruby
263
+ documentation_uri: https://github.com/karafka/rdkafka-ruby/blob/main/README.md
264
+ rubygems_mfa_required: 'true'
209
265
  post_install_message:
210
266
  rdoc_options: []
211
267
  require_paths:
@@ -214,14 +270,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
214
270
  requirements:
215
271
  - - ">="
216
272
  - !ruby/object:Gem::Version
217
- version: '2.6'
273
+ version: '2.7'
218
274
  required_rubygems_version: !ruby/object:Gem::Requirement
219
275
  requirements:
220
276
  - - ">="
221
277
  - !ruby/object:Gem::Version
222
278
  version: '0'
223
279
  requirements: []
224
- rubygems_version: 3.0.3
280
+ rubygems_version: 3.4.19
225
281
  signing_key:
226
282
  specification_version: 4
227
283
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
@@ -229,21 +285,28 @@ summary: The rdkafka gem is a modern Kafka client library for Ruby based on libr
229
285
  and Ruby 2.4+.
230
286
  test_files:
231
287
  - spec/rdkafka/abstract_handle_spec.rb
288
+ - spec/rdkafka/admin/create_acl_handle_spec.rb
289
+ - spec/rdkafka/admin/create_acl_report_spec.rb
232
290
  - spec/rdkafka/admin/create_topic_handle_spec.rb
233
291
  - spec/rdkafka/admin/create_topic_report_spec.rb
292
+ - spec/rdkafka/admin/delete_acl_handle_spec.rb
293
+ - spec/rdkafka/admin/delete_acl_report_spec.rb
234
294
  - spec/rdkafka/admin/delete_topic_handle_spec.rb
235
295
  - spec/rdkafka/admin/delete_topic_report_spec.rb
296
+ - spec/rdkafka/admin/describe_acl_handle_spec.rb
297
+ - spec/rdkafka/admin/describe_acl_report_spec.rb
236
298
  - spec/rdkafka/admin_spec.rb
237
299
  - spec/rdkafka/bindings_spec.rb
238
300
  - spec/rdkafka/callbacks_spec.rb
239
301
  - spec/rdkafka/config_spec.rb
302
+ - spec/rdkafka/consumer/headers_spec.rb
240
303
  - spec/rdkafka/consumer/message_spec.rb
241
304
  - spec/rdkafka/consumer/partition_spec.rb
242
305
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
243
306
  - spec/rdkafka/consumer_spec.rb
244
307
  - spec/rdkafka/error_spec.rb
245
308
  - spec/rdkafka/metadata_spec.rb
246
- - spec/rdkafka/producer/client_spec.rb
309
+ - spec/rdkafka/native_kafka_spec.rb
247
310
  - spec/rdkafka/producer/delivery_handle_spec.rb
248
311
  - spec/rdkafka/producer/delivery_report_spec.rb
249
312
  - spec/rdkafka/producer_spec.rb
metadata.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ ȧ����������ٸ��'�-S"?Yj�� &eB���s�x���
2
+ �L{mZz��Ë$�M�,ٛl�n%�j�V���ƨO�>B��k0L� ����{!ԕ,�Uu����;KU� ��v����&[����뷟�iIMN\;K�$Z�Qh+�'Ն��GZ �³����b3�Z����V��vѮ���~X�-�ੳJ�(j�\ӱ�{�IsB,�.5<�Ϲw$Ih�s�z�b�5�eW� 2q\� ��;�|�&0�@�
3
+ �F��ZQw�sl�;!��U>O��lq�/��s���J{H���JZ?6�q��P �!��I��,������h��^��B�ĆdT�����hMv
@@ -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