rdkafka 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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