karafka-rdkafka 0.20.1 → 0.21.0

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/{ci_linux_x86_64_musl.yml → ci_linux_alpine_x86_64_musl.yml} +12 -9
  3. data/.github/workflows/ci_linux_alpine_x86_64_musl_complementary.yml +264 -0
  4. data/.github/workflows/ci_linux_debian_x86_64_gnu.yml +271 -0
  5. data/.github/workflows/ci_linux_debian_x86_64_gnu_complementary.yml +334 -0
  6. data/.github/workflows/{ci_linux_x86_64_gnu.yml → ci_linux_ubuntu_aarch64_gnu.yml} +15 -15
  7. data/.github/workflows/ci_linux_ubuntu_aarch64_gnu_complementary.yml +295 -0
  8. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +281 -0
  9. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu_complementary.yml +294 -0
  10. data/.github/workflows/ci_macos_arm64.yml +5 -5
  11. data/.github/workflows/push_linux_aarch64_gnu.yml +65 -0
  12. data/.github/workflows/push_linux_x86_64_gnu.yml +2 -2
  13. data/.github/workflows/push_linux_x86_64_musl.yml +3 -3
  14. data/.github/workflows/push_macos_arm64.yml +2 -2
  15. data/.github/workflows/push_ruby.yml +1 -1
  16. data/.github/workflows/trigger-wiki-refresh.yml +30 -0
  17. data/.github/workflows/verify-action-pins.yml +1 -1
  18. data/.gitignore +1 -0
  19. data/.rspec +1 -0
  20. data/CHANGELOG.md +9 -0
  21. data/README.md +48 -147
  22. data/dist/cyrus-sasl-2.1.28.tar.gz +0 -0
  23. data/dist/krb5-1.21.3.tar.gz +0 -0
  24. data/dist/{librdkafka-2.8.0.tar.gz → librdkafka-2.11.0.tar.gz} +0 -0
  25. data/dist/openssl-3.0.16.tar.gz +0 -0
  26. data/dist/zlib-1.3.1.tar.gz +0 -0
  27. data/dist/zstd-1.5.7.tar.gz +0 -0
  28. data/docker-compose-ssl.yml +35 -0
  29. data/ext/build_common.sh +18 -3
  30. data/ext/build_linux_aarch64_gnu.sh +326 -0
  31. data/ext/build_linux_x86_64_gnu.sh +12 -1
  32. data/ext/build_linux_x86_64_musl.sh +18 -8
  33. data/ext/build_macos_arm64.sh +7 -0
  34. data/ext/generate-ssl-certs.sh +109 -0
  35. data/karafka-rdkafka.gemspec +2 -0
  36. data/lib/rdkafka/bindings.rb +0 -1
  37. data/lib/rdkafka/config.rb +1 -4
  38. data/lib/rdkafka/consumer.rb +1 -1
  39. data/lib/rdkafka/version.rb +3 -3
  40. data/spec/integrations/ssl_stress_spec.rb +121 -0
  41. data/spec/{rdkafka → lib/rdkafka}/admin_spec.rb +17 -5
  42. data/spec/{rdkafka → lib/rdkafka}/config_spec.rb +1 -1
  43. data/spec/{rdkafka → lib/rdkafka}/consumer_spec.rb +50 -3
  44. data/spec/{rdkafka → lib/rdkafka}/metadata_spec.rb +2 -2
  45. data/spec/{rdkafka → lib/rdkafka}/producer/delivery_report_spec.rb +1 -1
  46. data/spec/{rdkafka → lib/rdkafka}/producer_spec.rb +6 -7
  47. data/spec/spec_helper.rb +45 -10
  48. metadata +76 -31
  49. /data/spec/{rdkafka → lib/rdkafka}/abstract_handle_spec.rb +0 -0
  50. /data/spec/{rdkafka → lib/rdkafka}/admin/create_acl_handle_spec.rb +0 -0
  51. /data/spec/{rdkafka → lib/rdkafka}/admin/create_acl_report_spec.rb +0 -0
  52. /data/spec/{rdkafka → lib/rdkafka}/admin/create_topic_handle_spec.rb +0 -0
  53. /data/spec/{rdkafka → lib/rdkafka}/admin/create_topic_report_spec.rb +0 -0
  54. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_acl_handle_spec.rb +0 -0
  55. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_acl_report_spec.rb +0 -0
  56. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_topic_handle_spec.rb +0 -0
  57. /data/spec/{rdkafka → lib/rdkafka}/admin/delete_topic_report_spec.rb +0 -0
  58. /data/spec/{rdkafka → lib/rdkafka}/admin/describe_acl_handle_spec.rb +0 -0
  59. /data/spec/{rdkafka → lib/rdkafka}/admin/describe_acl_report_spec.rb +0 -0
  60. /data/spec/{rdkafka → lib/rdkafka}/bindings_spec.rb +0 -0
  61. /data/spec/{rdkafka → lib/rdkafka}/callbacks_spec.rb +0 -0
  62. /data/spec/{rdkafka → lib/rdkafka}/consumer/headers_spec.rb +0 -0
  63. /data/spec/{rdkafka → lib/rdkafka}/consumer/message_spec.rb +0 -0
  64. /data/spec/{rdkafka → lib/rdkafka}/consumer/partition_spec.rb +0 -0
  65. /data/spec/{rdkafka → lib/rdkafka}/consumer/topic_partition_list_spec.rb +0 -0
  66. /data/spec/{rdkafka → lib/rdkafka}/error_spec.rb +0 -0
  67. /data/spec/{rdkafka → lib/rdkafka}/native_kafka_spec.rb +0 -0
  68. /data/spec/{rdkafka → lib/rdkafka}/producer/delivery_handle_spec.rb +0 -0
  69. /data/spec/{rdkafka → lib/rdkafka}/producer/partitions_count_cache_spec.rb +0 -0
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ Warning[:performance] = true if RUBY_VERSION >= '3.3'
4
+ Warning[:deprecated] = true
5
+ $VERBOSE = true
6
+
7
+ require 'warning'
8
+
9
+ Warning.process do |warning|
10
+ next unless warning.include?(Dir.pwd)
11
+ # Allow OpenStruct usage only in specs
12
+ next if warning.include?('OpenStruct use') && warning.include?('_spec')
13
+
14
+ raise "Warning in your code: #{warning}"
15
+ end
16
+
3
17
  unless ENV["CI"] == "true"
4
18
  require "simplecov"
5
19
  SimpleCov.start do
@@ -14,14 +28,25 @@ require "timeout"
14
28
  require "securerandom"
15
29
 
16
30
  def rdkafka_base_config
17
- {
18
- :"api.version.request" => false,
19
- :"broker.version.fallback" => "1.0",
20
- :"bootstrap.servers" => "127.0.0.1:9092",
21
- # Display statistics and refresh often just to cover those in specs
22
- :'statistics.interval.ms' => 1_000,
23
- :'topic.metadata.refresh.interval.ms' => 1_000
24
- }
31
+ if ENV['KAFKA_SSL_ENABLED'] == 'true'
32
+ {
33
+ :"bootstrap.servers" => "localhost:9093",
34
+ # Display statistics and refresh often just to cover those in specs
35
+ :'statistics.interval.ms' => 1_000,
36
+ :'topic.metadata.refresh.interval.ms' => 1_000,
37
+ # SSL Configuration
38
+ :'security.protocol' => 'SSL',
39
+ :'ssl.ca.location' => './ssl/ca-cert',
40
+ :'ssl.endpoint.identification.algorithm' => 'none'
41
+ }
42
+ else
43
+ {
44
+ :"bootstrap.servers" => "localhost:9092",
45
+ # Display statistics and refresh often just to cover those in specs
46
+ :'statistics.interval.ms' => 1_000,
47
+ :'topic.metadata.refresh.interval.ms' => 1_000
48
+ }
49
+ end
25
50
  end
26
51
 
27
52
  def rdkafka_config(config_overrides={})
@@ -124,6 +149,16 @@ def wait_for_unassignment(consumer)
124
149
  end
125
150
  end
126
151
 
152
+ def wait_for_topic(admin, topic)
153
+ admin.metadata(topic)
154
+ rescue Rdkafka::RdkafkaError => e
155
+ raise unless e.code == :unknown_topic_or_part
156
+
157
+ sleep(0.5)
158
+
159
+ retry
160
+ end
161
+
127
162
  def notify_listener(listener, &block)
128
163
  # 1. subscribe and poll
129
164
  consumer.subscribe("consume_test_topic")
@@ -171,9 +206,9 @@ RSpec.configure do |config|
171
206
  end
172
207
 
173
208
  config.around(:each) do |example|
174
- # Timeout specs after a minute. If they take longer
209
+ # Timeout specs after 1.5 minute. If they take longer
175
210
  # they are probably stuck
176
- Timeout::timeout(60) do
211
+ Timeout::timeout(90) do
177
212
  example.run
178
213
  end
179
214
  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.20.1
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: logger
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,20 @@ dependencies:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: warning
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
139
167
  description: Modern Kafka client library for Ruby based on librdkafka
140
168
  email:
141
169
  - contact@karafka.io
@@ -146,13 +174,21 @@ extra_rdoc_files: []
146
174
  files:
147
175
  - ".github/CODEOWNERS"
148
176
  - ".github/FUNDING.yml"
149
- - ".github/workflows/ci_linux_x86_64_gnu.yml"
150
- - ".github/workflows/ci_linux_x86_64_musl.yml"
177
+ - ".github/workflows/ci_linux_alpine_x86_64_musl.yml"
178
+ - ".github/workflows/ci_linux_alpine_x86_64_musl_complementary.yml"
179
+ - ".github/workflows/ci_linux_debian_x86_64_gnu.yml"
180
+ - ".github/workflows/ci_linux_debian_x86_64_gnu_complementary.yml"
181
+ - ".github/workflows/ci_linux_ubuntu_aarch64_gnu.yml"
182
+ - ".github/workflows/ci_linux_ubuntu_aarch64_gnu_complementary.yml"
183
+ - ".github/workflows/ci_linux_ubuntu_x86_64_gnu.yml"
184
+ - ".github/workflows/ci_linux_ubuntu_x86_64_gnu_complementary.yml"
151
185
  - ".github/workflows/ci_macos_arm64.yml"
186
+ - ".github/workflows/push_linux_aarch64_gnu.yml"
152
187
  - ".github/workflows/push_linux_x86_64_gnu.yml"
153
188
  - ".github/workflows/push_linux_x86_64_musl.yml"
154
189
  - ".github/workflows/push_macos_arm64.yml"
155
190
  - ".github/workflows/push_ruby.yml"
191
+ - ".github/workflows/trigger-wiki-refresh.yml"
156
192
  - ".github/workflows/verify-action-pins.yml"
157
193
  - ".gitignore"
158
194
  - ".rspec"
@@ -164,15 +200,23 @@ files:
164
200
  - MIT-LICENSE
165
201
  - README.md
166
202
  - Rakefile
167
- - dist/librdkafka-2.8.0.tar.gz
203
+ - dist/cyrus-sasl-2.1.28.tar.gz
204
+ - dist/krb5-1.21.3.tar.gz
205
+ - dist/librdkafka-2.11.0.tar.gz
206
+ - dist/openssl-3.0.16.tar.gz
168
207
  - dist/patches/rdkafka_global_init.patch
208
+ - dist/zlib-1.3.1.tar.gz
209
+ - dist/zstd-1.5.7.tar.gz
210
+ - docker-compose-ssl.yml
169
211
  - docker-compose.yml
170
212
  - ext/README.md
171
213
  - ext/Rakefile
172
214
  - ext/build_common.sh
215
+ - ext/build_linux_aarch64_gnu.sh
173
216
  - ext/build_linux_x86_64_gnu.sh
174
217
  - ext/build_linux_x86_64_musl.sh
175
218
  - ext/build_macos_arm64.sh
219
+ - ext/generate-ssl-certs.sh
176
220
  - karafka-rdkafka.gemspec
177
221
  - lib/rdkafka.rb
178
222
  - lib/rdkafka/abstract_handle.rb
@@ -217,33 +261,34 @@ files:
217
261
  - lib/rdkafka/producer/partitions_count_cache.rb
218
262
  - lib/rdkafka/version.rb
219
263
  - renovate.json
220
- - spec/rdkafka/abstract_handle_spec.rb
221
- - spec/rdkafka/admin/create_acl_handle_spec.rb
222
- - spec/rdkafka/admin/create_acl_report_spec.rb
223
- - spec/rdkafka/admin/create_topic_handle_spec.rb
224
- - spec/rdkafka/admin/create_topic_report_spec.rb
225
- - spec/rdkafka/admin/delete_acl_handle_spec.rb
226
- - spec/rdkafka/admin/delete_acl_report_spec.rb
227
- - spec/rdkafka/admin/delete_topic_handle_spec.rb
228
- - spec/rdkafka/admin/delete_topic_report_spec.rb
229
- - spec/rdkafka/admin/describe_acl_handle_spec.rb
230
- - spec/rdkafka/admin/describe_acl_report_spec.rb
231
- - spec/rdkafka/admin_spec.rb
232
- - spec/rdkafka/bindings_spec.rb
233
- - spec/rdkafka/callbacks_spec.rb
234
- - spec/rdkafka/config_spec.rb
235
- - spec/rdkafka/consumer/headers_spec.rb
236
- - spec/rdkafka/consumer/message_spec.rb
237
- - spec/rdkafka/consumer/partition_spec.rb
238
- - spec/rdkafka/consumer/topic_partition_list_spec.rb
239
- - spec/rdkafka/consumer_spec.rb
240
- - spec/rdkafka/error_spec.rb
241
- - spec/rdkafka/metadata_spec.rb
242
- - spec/rdkafka/native_kafka_spec.rb
243
- - spec/rdkafka/producer/delivery_handle_spec.rb
244
- - spec/rdkafka/producer/delivery_report_spec.rb
245
- - spec/rdkafka/producer/partitions_count_cache_spec.rb
246
- - spec/rdkafka/producer_spec.rb
264
+ - spec/integrations/ssl_stress_spec.rb
265
+ - spec/lib/rdkafka/abstract_handle_spec.rb
266
+ - spec/lib/rdkafka/admin/create_acl_handle_spec.rb
267
+ - spec/lib/rdkafka/admin/create_acl_report_spec.rb
268
+ - spec/lib/rdkafka/admin/create_topic_handle_spec.rb
269
+ - spec/lib/rdkafka/admin/create_topic_report_spec.rb
270
+ - spec/lib/rdkafka/admin/delete_acl_handle_spec.rb
271
+ - spec/lib/rdkafka/admin/delete_acl_report_spec.rb
272
+ - spec/lib/rdkafka/admin/delete_topic_handle_spec.rb
273
+ - spec/lib/rdkafka/admin/delete_topic_report_spec.rb
274
+ - spec/lib/rdkafka/admin/describe_acl_handle_spec.rb
275
+ - spec/lib/rdkafka/admin/describe_acl_report_spec.rb
276
+ - spec/lib/rdkafka/admin_spec.rb
277
+ - spec/lib/rdkafka/bindings_spec.rb
278
+ - spec/lib/rdkafka/callbacks_spec.rb
279
+ - spec/lib/rdkafka/config_spec.rb
280
+ - spec/lib/rdkafka/consumer/headers_spec.rb
281
+ - spec/lib/rdkafka/consumer/message_spec.rb
282
+ - spec/lib/rdkafka/consumer/partition_spec.rb
283
+ - spec/lib/rdkafka/consumer/topic_partition_list_spec.rb
284
+ - spec/lib/rdkafka/consumer_spec.rb
285
+ - spec/lib/rdkafka/error_spec.rb
286
+ - spec/lib/rdkafka/metadata_spec.rb
287
+ - spec/lib/rdkafka/native_kafka_spec.rb
288
+ - spec/lib/rdkafka/producer/delivery_handle_spec.rb
289
+ - spec/lib/rdkafka/producer/delivery_report_spec.rb
290
+ - spec/lib/rdkafka/producer/partitions_count_cache_spec.rb
291
+ - spec/lib/rdkafka/producer_spec.rb
247
292
  - spec/spec_helper.rb
248
293
  licenses:
249
294
  - MIT
File without changes
File without changes
File without changes
File without changes