rdkafka 0.8.0.beta.1 → 0.10.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/.semaphore/semaphore.yml +23 -0
  3. data/CHANGELOG.md +18 -0
  4. data/README.md +5 -2
  5. data/docker-compose.yml +2 -0
  6. data/ext/README.md +7 -0
  7. data/ext/Rakefile +2 -1
  8. data/lib/rdkafka/abstract_handle.rb +82 -0
  9. data/lib/rdkafka/admin/create_topic_handle.rb +27 -0
  10. data/lib/rdkafka/admin/create_topic_report.rb +22 -0
  11. data/lib/rdkafka/admin/delete_topic_handle.rb +27 -0
  12. data/lib/rdkafka/admin/delete_topic_report.rb +22 -0
  13. data/lib/rdkafka/admin.rb +155 -0
  14. data/lib/rdkafka/bindings.rb +57 -18
  15. data/lib/rdkafka/callbacks.rb +106 -0
  16. data/lib/rdkafka/config.rb +59 -3
  17. data/lib/rdkafka/consumer.rb +125 -5
  18. data/lib/rdkafka/error.rb +29 -3
  19. data/lib/rdkafka/metadata.rb +6 -5
  20. data/lib/rdkafka/producer/delivery_handle.rb +7 -53
  21. data/lib/rdkafka/producer.rb +25 -11
  22. data/lib/rdkafka/version.rb +3 -3
  23. data/lib/rdkafka.rb +7 -0
  24. data/spec/rdkafka/abstract_handle_spec.rb +114 -0
  25. data/spec/rdkafka/admin/create_topic_handle_spec.rb +52 -0
  26. data/spec/rdkafka/admin/create_topic_report_spec.rb +16 -0
  27. data/spec/rdkafka/admin/delete_topic_handle_spec.rb +52 -0
  28. data/spec/rdkafka/admin/delete_topic_report_spec.rb +16 -0
  29. data/spec/rdkafka/admin_spec.rb +203 -0
  30. data/spec/rdkafka/bindings_spec.rb +32 -8
  31. data/spec/rdkafka/callbacks_spec.rb +20 -0
  32. data/spec/rdkafka/config_spec.rb +76 -7
  33. data/spec/rdkafka/consumer_spec.rb +266 -2
  34. data/spec/rdkafka/error_spec.rb +4 -0
  35. data/spec/rdkafka/metadata_spec.rb +78 -0
  36. data/spec/rdkafka/producer/delivery_handle_spec.rb +1 -41
  37. data/spec/rdkafka/producer_spec.rb +98 -31
  38. data/spec/spec_helper.rb +28 -11
  39. metadata +32 -9
  40. data/.travis.yml +0 -45
data/spec/spec_helper.rb CHANGED
@@ -1,20 +1,14 @@
1
- require "simplecov"
2
- SimpleCov.start do
3
- add_filter "/spec/"
1
+ unless ENV["CI"] == "true"
2
+ require "simplecov"
3
+ SimpleCov.start do
4
+ add_filter "/spec/"
5
+ end
4
6
  end
5
7
 
6
8
  require "pry"
7
9
  require "rspec"
8
10
  require "rdkafka"
9
11
 
10
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic consume_test_topic`
11
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic empty_test_topic`
12
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic load_test_topic`
13
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic produce_test_topic`
14
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic rake_test_topic`
15
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 3 --if-not-exists --topic watermarks_test_topic`
16
- `docker-compose exec kafka kafka-topics --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 25 --if-not-exists --topic partitioner_test_topic`
17
-
18
12
  def rdkafka_config(config_overrides={})
19
13
  config = {
20
14
  :"api.version.request" => false,
@@ -79,3 +73,26 @@ def wait_for_unassignment(consumer)
79
73
  sleep 1
80
74
  end
81
75
  end
76
+
77
+ RSpec.configure do |config|
78
+ config.before(:suite) do
79
+ admin = rdkafka_config.admin
80
+ {
81
+ consume_test_topic: 3,
82
+ empty_test_topic: 3,
83
+ load_test_topic: 3,
84
+ produce_test_topic: 3,
85
+ rake_test_topic: 3,
86
+ watermarks_test_topic: 3,
87
+ partitioner_test_topic: 25,
88
+ }.each do |topic, partitions|
89
+ create_topic_handle = admin.create_topic(topic.to_s, partitions, 1)
90
+ begin
91
+ create_topic_handle.wait(max_wait_timeout: 15)
92
+ rescue Rdkafka::RdkafkaError => ex
93
+ raise unless ex.message.match?(/topic_already_exists/)
94
+ end
95
+ end
96
+ admin.close
97
+ end
98
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.beta.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-30 00:00:00.000000000 Z
11
+ date: 2021-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -117,7 +117,7 @@ extensions:
117
117
  extra_rdoc_files: []
118
118
  files:
119
119
  - ".gitignore"
120
- - ".travis.yml"
120
+ - ".semaphore/semaphore.yml"
121
121
  - ".yardopts"
122
122
  - CHANGELOG.md
123
123
  - Gemfile
@@ -128,7 +128,14 @@ files:
128
128
  - ext/README.md
129
129
  - ext/Rakefile
130
130
  - lib/rdkafka.rb
131
+ - lib/rdkafka/abstract_handle.rb
132
+ - lib/rdkafka/admin.rb
133
+ - lib/rdkafka/admin/create_topic_handle.rb
134
+ - lib/rdkafka/admin/create_topic_report.rb
135
+ - lib/rdkafka/admin/delete_topic_handle.rb
136
+ - lib/rdkafka/admin/delete_topic_report.rb
131
137
  - lib/rdkafka/bindings.rb
138
+ - lib/rdkafka/callbacks.rb
132
139
  - lib/rdkafka/config.rb
133
140
  - lib/rdkafka/consumer.rb
134
141
  - lib/rdkafka/consumer/headers.rb
@@ -142,13 +149,21 @@ files:
142
149
  - lib/rdkafka/producer/delivery_report.rb
143
150
  - lib/rdkafka/version.rb
144
151
  - rdkafka.gemspec
152
+ - spec/rdkafka/abstract_handle_spec.rb
153
+ - spec/rdkafka/admin/create_topic_handle_spec.rb
154
+ - spec/rdkafka/admin/create_topic_report_spec.rb
155
+ - spec/rdkafka/admin/delete_topic_handle_spec.rb
156
+ - spec/rdkafka/admin/delete_topic_report_spec.rb
157
+ - spec/rdkafka/admin_spec.rb
145
158
  - spec/rdkafka/bindings_spec.rb
159
+ - spec/rdkafka/callbacks_spec.rb
146
160
  - spec/rdkafka/config_spec.rb
147
161
  - spec/rdkafka/consumer/message_spec.rb
148
162
  - spec/rdkafka/consumer/partition_spec.rb
149
163
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
150
164
  - spec/rdkafka/consumer_spec.rb
151
165
  - spec/rdkafka/error_spec.rb
166
+ - spec/rdkafka/metadata_spec.rb
152
167
  - spec/rdkafka/producer/delivery_handle_spec.rb
153
168
  - spec/rdkafka/producer/delivery_report_spec.rb
154
169
  - spec/rdkafka/producer_spec.rb
@@ -157,7 +172,7 @@ homepage: https://github.com/thijsc/rdkafka-ruby
157
172
  licenses:
158
173
  - MIT
159
174
  metadata: {}
160
- post_install_message:
175
+ post_install_message:
161
176
  rdoc_options: []
162
177
  require_paths:
163
178
  - lib
@@ -168,24 +183,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
183
  version: '2.4'
169
184
  required_rubygems_version: !ruby/object:Gem::Requirement
170
185
  requirements:
171
- - - ">"
186
+ - - ">="
172
187
  - !ruby/object:Gem::Version
173
- version: 1.3.1
188
+ version: '0'
174
189
  requirements: []
175
- rubygems_version: 3.1.2
176
- signing_key:
190
+ rubygems_version: 3.1.4
191
+ signing_key:
177
192
  specification_version: 4
178
193
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
179
194
  It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
180
195
  and Ruby 2.4+.
181
196
  test_files:
197
+ - spec/rdkafka/abstract_handle_spec.rb
198
+ - spec/rdkafka/admin/create_topic_handle_spec.rb
199
+ - spec/rdkafka/admin/create_topic_report_spec.rb
200
+ - spec/rdkafka/admin/delete_topic_handle_spec.rb
201
+ - spec/rdkafka/admin/delete_topic_report_spec.rb
202
+ - spec/rdkafka/admin_spec.rb
182
203
  - spec/rdkafka/bindings_spec.rb
204
+ - spec/rdkafka/callbacks_spec.rb
183
205
  - spec/rdkafka/config_spec.rb
184
206
  - spec/rdkafka/consumer/message_spec.rb
185
207
  - spec/rdkafka/consumer/partition_spec.rb
186
208
  - spec/rdkafka/consumer/topic_partition_list_spec.rb
187
209
  - spec/rdkafka/consumer_spec.rb
188
210
  - spec/rdkafka/error_spec.rb
211
+ - spec/rdkafka/metadata_spec.rb
189
212
  - spec/rdkafka/producer/delivery_handle_spec.rb
190
213
  - spec/rdkafka/producer/delivery_report_spec.rb
191
214
  - spec/rdkafka/producer_spec.rb
data/.travis.yml DELETED
@@ -1,45 +0,0 @@
1
- language: ruby
2
-
3
- sudo: false
4
-
5
- services:
6
- - docker
7
-
8
- env:
9
- global:
10
- - CC_TEST_REPORTER_ID=9f7f740ac1b6e264e1189fa07a6687a87bcdb9f3c0f4199d4344ab3b538e187e
11
- - KAFKA_HEAP_OPTS="-Xmx512m -Xms512m"
12
-
13
- rvm:
14
- - 2.4
15
- - 2.5
16
- - 2.6
17
- - jruby-9.2.9.0
18
-
19
- before_install:
20
- - gem update --system
21
- - |
22
- r_eng="$(ruby -e 'STDOUT.write RUBY_ENGINE')";
23
- if [ "$r_eng" == "jruby" ]; then
24
- sudo apt-get update && \
25
- sudo apt-get install -y git && \
26
- sudo apt-get install -y libpthread-stubs0-dev && \
27
- sudo apt-get install -y build-essential && \
28
- sudo apt-get install -y zlib1g-dev && \
29
- sudo apt-get install -y libssl-dev && \
30
- sudo apt-get install -y libsasl2-dev
31
- fi
32
-
33
- before_script:
34
- - docker-compose up -d
35
- - cd ext && bundle exec rake && cd ..
36
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
37
- - chmod +x ./cc-test-reporter
38
- - ./cc-test-reporter before-build
39
-
40
- script:
41
- - bundle exec rspec --format documentation
42
-
43
- after_script:
44
- - docker-compose stop
45
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT