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 +4 -4
- data/README.md +16 -2
- data/Rakefile +8 -6
- data/lib/rdkafka/producer.rb +3 -3
- data/lib/rdkafka/version.rb +1 -1
- data/rdkafka.gemspec +1 -1
- data/spec/rdkafka/config_spec.rb +3 -3
- data/spec/spec_helper.rb +9 -11
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c6cf79c7eb2f42ac06964f7533885503c8e44ed
|
4
|
+
data.tar.gz: 0e2032d5a0a400dfb371ef246eb55b62b53c3b95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3ffd0c03e768241efd8106a74478e867ab16219d4c707d0d9ba7fcb82258712334eab1bee9c9b6baf6bfad0e434325560cdceef1adfc3808286d4411191dd94
|
7
|
+
data.tar.gz: 4ecfe201e30506e90603b845a7154e0e68173696bde84432ec7f4a5261f38bf1a3a8172ef4e1282488810ed8c89e8dbbeb33b84d4ca6c520c5d08b6a48a4fb39
|
data/README.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
|
-
#
|
1
|
+
# Rdkafka
|
2
2
|
|
3
|
-
|
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 :
|
8
|
+
task :produce_messages do
|
9
9
|
producer = Rdkafka::Config.new(
|
10
10
|
:"bootstrap.servers" => "localhost:9092"
|
11
11
|
).producer
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|
data/lib/rdkafka/producer.rb
CHANGED
@@ -36,9 +36,9 @@ module Rdkafka
|
|
36
36
|
|
37
37
|
delivery_handle = DeliveryHandle.new
|
38
38
|
delivery_handle[:pending] = true
|
39
|
-
delivery_handle[:response] =
|
40
|
-
delivery_handle[:partition] =
|
41
|
-
delivery_handle[:offset] =
|
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(
|
data/lib/rdkafka/version.rb
CHANGED
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.
|
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'
|
data/spec/rdkafka/config_spec.rb
CHANGED
@@ -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[
|
7
|
-
expect(config[
|
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[
|
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
|
-
|
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
|
-
|
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.
|
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.
|
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.
|
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.
|
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
|