rdkafka 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1444aae0a46b7a7fc96660980a185d659a59c1b9
4
- data.tar.gz: c8b0a132119a090cd7a004c6dbe3c6b1fc06db3c
3
+ metadata.gz: 2c6cf79c7eb2f42ac06964f7533885503c8e44ed
4
+ data.tar.gz: 0e2032d5a0a400dfb371ef246eb55b62b53c3b95
5
5
  SHA512:
6
- metadata.gz: ba75b3de888cda846b746fdcb4b5dcbdde21a0d8efcb4143e0176bbfea0ab34dce2d8180037c6c0d6fd9dd63770b0adeb460b1beb3a5d278f423b4a8916bf3a1
7
- data.tar.gz: d825345bfb72038f9b577ec7dfe5a429087ad71fe133e17fa9a65d6b7945905d22e75695dbbef8305d8b459f2f19c99dcd117746152034a492cedbf3f2bf3e38
6
+ metadata.gz: e3ffd0c03e768241efd8106a74478e867ab16219d4c707d0d9ba7fcb82258712334eab1bee9c9b6baf6bfad0e434325560cdceef1adfc3808286d4411191dd94
7
+ data.tar.gz: 4ecfe201e30506e90603b845a7154e0e68173696bde84432ec7f4a5261f38bf1a3a8172ef4e1282488810ed8c89e8dbbeb33b84d4ca6c520c5d08b6a48a4fb39
data/README.md CHANGED
@@ -1,6 +1,13 @@
1
- # Modern Kafka client library for Ruby based on librdkafka
1
+ # Rdkafka
2
2
 
3
- Kafka client library wrapping `librdkafka` using the FFI gem for Kafka 0.10+ and Ruby 2.1+".
3
+ The `rdkafka` gem is a modern Kafka client library for Ruby based on
4
+ [librdkafka](https://github.com/edenhill/librdkafka/).
5
+ It wraps the production-ready C client using the [ffi](https://github.com/ffi/ffi)
6
+ gem and targets Kafka 0.10+ and Ruby 2.1+.
7
+
8
+ This gem only provides a high-level Kafka consumer. If you are running
9
+ an older version of Kafka and/or need the legacy simple consumer we
10
+ suggest using the [Hermann](https://github.com/reiseburo/hermann) gem.
4
11
 
5
12
  ## Development
6
13
 
@@ -14,3 +21,10 @@ debug output:
14
21
  DEBUG_PRODUCER=true bundle exec rspec
15
22
  DEBUG_CONSUMER=true bundle exec rspec
16
23
  ```
24
+
25
+ To see everything working run these in separate tabs:
26
+
27
+ ```
28
+ bundle exec rake consume_messages
29
+ bundle exec rake produce_messages
30
+ ```
data/Rakefile CHANGED
@@ -5,15 +5,17 @@ task :create_topics do
5
5
  `kafka-topics --create --topic=rake_test_topic --zookeeper=127.0.0.1:2181 --partitions=1 --replication-factor=1`
6
6
  end
7
7
 
8
- task :produce_message do
8
+ task :produce_messages do
9
9
  producer = Rdkafka::Config.new(
10
10
  :"bootstrap.servers" => "localhost:9092"
11
11
  ).producer
12
- producer.produce(
13
- topic: "rake_test_topic",
14
- payload: "payload from Rake",
15
- key: "key from Rake"
16
- ).wait
12
+ 100.times do |i|
13
+ producer.produce(
14
+ topic: "rake_test_topic",
15
+ payload: "Payload #{i} from Rake",
16
+ key: "Key #{i} from Rake"
17
+ ).wait
18
+ end
17
19
  end
18
20
 
19
21
  task :consume_messages do
@@ -36,9 +36,9 @@ module Rdkafka
36
36
 
37
37
  delivery_handle = DeliveryHandle.new
38
38
  delivery_handle[:pending] = true
39
- delivery_handle[:response] = 0
40
- delivery_handle[:partition] = 0
41
- delivery_handle[:offset] = 0
39
+ delivery_handle[:response] = -1
40
+ delivery_handle[:partition] = -1
41
+ delivery_handle[:offset] = -1
42
42
 
43
43
  # Produce the message
44
44
  response = Rdkafka::FFI.rd_kafka_producev(
@@ -1,4 +1,4 @@
1
1
  module Rdkafka
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  LIBRDKAFKA_VERSION = "0.11.0"
4
4
  end
data/rdkafka.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.extensions = %w(ext/Rakefile)
19
19
 
20
20
  gem.add_dependency 'ffi', '~> 1.9'
21
- gem.add_dependency 'mini_portile2', '~> 2.2'
21
+ gem.add_dependency 'mini_portile2', '~> 2.1'
22
22
 
23
23
  gem.add_development_dependency 'pry', '~> 0.10'
24
24
  gem.add_development_dependency 'rspec', '~> 3.5'
@@ -3,13 +3,13 @@ require "spec_helper"
3
3
  describe Rdkafka::Config do
4
4
  it "should store configuration" do
5
5
  config = Rdkafka::Config.new
6
- config['key'] = 'value'
7
- expect(config['key']).to eq 'value'
6
+ config[:"key"] = 'value'
7
+ expect(config[:"key"]).to eq 'value'
8
8
  end
9
9
 
10
10
  it "should use default configuration" do
11
11
  config = Rdkafka::Config.new
12
- expect(config['api.version.request']).to eq 'true'
12
+ expect(config[:"api.version.request"]).to eq true
13
13
  end
14
14
 
15
15
  it "should create a consumer with valid config" do
data/spec/spec_helper.rb CHANGED
@@ -3,17 +3,15 @@ require "rspec"
3
3
  require "rdkafka"
4
4
 
5
5
  def rdkafka_config
6
- debug = if ENV["DEBUG_PRODUCER"]
7
- "broker,topic,msg"
8
- elsif ENV["DEBUG_CONSUMER"]
9
- "cgrp,topic,fetch"
10
- else
11
- ""
12
- end
13
- Rdkafka::Config.new(
6
+ config = {
14
7
  :"bootstrap.servers" => "localhost:9092",
15
8
  :"group.id" => "ruby_test",
16
- :"enable.partition.eof" => false,
17
- :"debug" => debug
18
- )
9
+ :"enable.partition.eof" => false
10
+ }
11
+ if ENV["DEBUG_PRODUCER"]
12
+ config[:debug] = "broker,topic,msg"
13
+ elsif ENV["DEBUG_CONSUMER"]
14
+ config[:debug] = "cgrp,topic,fetch"
15
+ end
16
+ Rdkafka::Config.new(config)
19
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thijs Cadier
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.2'
33
+ version: '2.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.2'
40
+ version: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubyforge_project:
132
- rubygems_version: 2.6.11
132
+ rubygems_version: 2.6.13
133
133
  signing_key:
134
134
  specification_version: 4
135
135
  summary: Kafka client library wrapping librdkafka using the ffi gem and futures from