kafka-rest-rb 0.1.0.alpha3 → 0.1.0.alpha4
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/lib/kafka_rest/client/middleware.rb +1 -14
- data/lib/kafka_rest/config.rb +11 -1
- data/lib/kafka_rest/exceptions.rb +29 -0
- data/lib/kafka_rest/producer/message.rb +27 -0
- data/lib/kafka_rest/{sender → producer}/payload/avro_builder.rb +1 -1
- data/lib/kafka_rest/{sender → producer}/payload/binary_builder.rb +1 -1
- data/lib/kafka_rest/{sender → producer}/payload/builder.rb +1 -1
- data/lib/kafka_rest/{sender → producer}/payload/json_builder.rb +1 -1
- data/lib/kafka_rest/{sender → producer}/payload.rb +5 -5
- data/lib/kafka_rest/producer.rb +10 -3
- data/lib/kafka_rest/sender/kafka_sender.rb +84 -0
- data/lib/kafka_rest/sender/log_sender.rb +13 -0
- data/lib/kafka_rest/sender/test_sender.rb +28 -0
- data/lib/kafka_rest/sender.rb +6 -74
- data/lib/kafka_rest/version.rb +1 -1
- data/lib/kafka_rest.rb +5 -1
- metadata +64 -59
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e943787c23ecd8a91ccbe8dd0af4da7b5cc4d6d
|
4
|
+
data.tar.gz: c067af79eca968aa0400006ec11af42afc5cb868
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29a226688e4184daa8fbb636c7e6e2f59631faddfacb15d3c162cd315f1c6b38bf6fe8d683ea35fc42f0af457e79dadec48341223caa4e1eb2f5cb95a4fc7eef
|
7
|
+
data.tar.gz: 0ec544e2efd18df718d9676baaeafea0773ac8c86b0f526d89e87b4f8f568c4efeaf49875f0da333148a0dcaa3fc4ec68d430623416c384ee9ed1840e31b6b07
|
@@ -4,19 +4,6 @@ require 'multi_json'
|
|
4
4
|
|
5
5
|
module KafkaRest
|
6
6
|
class Client
|
7
|
-
class KafkaRestClientException < StandardError
|
8
|
-
attr_reader :body, :status
|
9
|
-
|
10
|
-
def initialize(resp)
|
11
|
-
@body = resp.body
|
12
|
-
@status = resp.status
|
13
|
-
|
14
|
-
super "#{@body['message']}" +
|
15
|
-
" (HTTP Status: #{@status}; " +
|
16
|
-
"error code: #{@body['error_code']})"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
7
|
class DefaultHeaders < Faraday::Middleware
|
21
8
|
def initialize(app = nil, default_headers = {})
|
22
9
|
@default_headers = default_headers
|
@@ -50,7 +37,7 @@ module KafkaRest
|
|
50
37
|
response = @app.call(env)
|
51
38
|
response.on_complete do
|
52
39
|
unless response.success?
|
53
|
-
raise
|
40
|
+
raise ClientError.new(response)
|
54
41
|
end
|
55
42
|
end
|
56
43
|
end
|
data/lib/kafka_rest/config.rb
CHANGED
@@ -5,7 +5,8 @@ module KafkaRest
|
|
5
5
|
:serialization_adapter,
|
6
6
|
:worker_min_threads,
|
7
7
|
:worker_max_threads,
|
8
|
-
:worker_max_queue
|
8
|
+
:worker_max_queue,
|
9
|
+
:sender
|
9
10
|
|
10
11
|
def initialize
|
11
12
|
@url = 'http://localhost:8082'
|
@@ -14,6 +15,15 @@ module KafkaRest
|
|
14
15
|
@worker_min_threads = 4
|
15
16
|
@worker_max_threads = 4
|
16
17
|
@worker_max_queue = nil
|
18
|
+
@sender = KafkaRest::Sender::KafkaSender
|
19
|
+
end
|
20
|
+
|
21
|
+
def sender=(_sender)
|
22
|
+
if s.respond_to?(:send!)
|
23
|
+
@sender = _sender
|
24
|
+
else
|
25
|
+
raise InvalidConfigValue.new("sender", _sender, "Sender be a child of `KafkaRest::Sender`")
|
26
|
+
end
|
17
27
|
end
|
18
28
|
end
|
19
29
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module KafkaRest
|
2
|
+
class InvalidConfigValue < StandardError
|
3
|
+
def initialize(name, val, msg = nil)
|
4
|
+
message = "Invalid config for `#{name}`: #{val.to_s}"
|
5
|
+
message << ". #{msg}" if msg
|
6
|
+
|
7
|
+
super message
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class ClientError < StandardError
|
12
|
+
attr_reader :body, :status, :error_code
|
13
|
+
|
14
|
+
def initialize(resp)
|
15
|
+
@body = resp.body
|
16
|
+
@status = resp.status
|
17
|
+
@error_code = @body['error_code']
|
18
|
+
|
19
|
+
super "#{@body['message']}" +
|
20
|
+
" (HTTP Status: #{@status}; " +
|
21
|
+
"error code: #{@status})"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class ProducerSendError < StandardError
|
26
|
+
end
|
27
|
+
|
28
|
+
class ConsumerError < StandardError; end
|
29
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module KafkaRest
|
2
|
+
module Producer
|
3
|
+
class Message
|
4
|
+
attr_reader :topic, :payload, :format, :params
|
5
|
+
|
6
|
+
def initialize(producer, obj, opts = {})
|
7
|
+
@topic = producer.get_topic.to_s
|
8
|
+
@payload = Payload.new(producer, obj, opts).build
|
9
|
+
@format = producer.get_format.to_s
|
10
|
+
@params = build_params(producer)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
# add schemas if format == 'avro'
|
16
|
+
def build_params(producer)
|
17
|
+
{}.tap do |params|
|
18
|
+
if @format == 'avro'
|
19
|
+
has_key = !producer.get_key.nil?
|
20
|
+
params[:key_schema] = producer.get_key_schema if has_key
|
21
|
+
params[:value_schema] = producer.get_value_schema
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'kafka_rest/
|
2
|
-
require 'kafka_rest/
|
3
|
-
require 'kafka_rest/
|
4
|
-
require 'kafka_rest/
|
1
|
+
require 'kafka_rest/producer/payload/builder'
|
2
|
+
require 'kafka_rest/producer/payload/avro_builder'
|
3
|
+
require 'kafka_rest/producer/payload/json_builder'
|
4
|
+
require 'kafka_rest/producer/payload/binary_builder'
|
5
5
|
|
6
6
|
module KafkaRest
|
7
|
-
|
7
|
+
module Producer
|
8
8
|
class Payload
|
9
9
|
attr_reader :klass
|
10
10
|
|
data/lib/kafka_rest/producer.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'kafka_rest/dsl'
|
2
|
+
require 'kafka_rest/producer/payload'
|
2
3
|
|
3
4
|
module KafkaRest
|
4
5
|
module Producer
|
@@ -60,9 +61,15 @@ module KafkaRest
|
|
60
61
|
end
|
61
62
|
|
62
63
|
module ClassMethods
|
63
|
-
def
|
64
|
-
(
|
65
|
-
|
64
|
+
def build_message(obj, opts = {})
|
65
|
+
Message.new(self, obj, opts = {})
|
66
|
+
end
|
67
|
+
|
68
|
+
def send!(obj, opts = {}, sender = nil)
|
69
|
+
sender = sender || KafkaRest.config.sender
|
70
|
+
message = build_message(obj, opts)
|
71
|
+
|
72
|
+
sender.send!(message)
|
66
73
|
end
|
67
74
|
end
|
68
75
|
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module KafkaRest
|
2
|
+
module Sender
|
3
|
+
class KafkaSender
|
4
|
+
|
5
|
+
@@instance = nil
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def instance
|
9
|
+
@@instance ||= self.new(Client.new)
|
10
|
+
end
|
11
|
+
|
12
|
+
def send!(message)
|
13
|
+
instance.send!(message)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
attr_reader :key_schema_cache, :value_schema_cache
|
18
|
+
|
19
|
+
def initialize(client, opts = {})
|
20
|
+
@lock = Mutex.new
|
21
|
+
@client = client
|
22
|
+
@key_schema_cache = {}
|
23
|
+
@value_schema_cache = {}
|
24
|
+
end
|
25
|
+
|
26
|
+
# TODO: back-off retry if offset[i].errors is a retriable error
|
27
|
+
def send!(message)
|
28
|
+
send_produce_request!(
|
29
|
+
message.topic,
|
30
|
+
message.payload,
|
31
|
+
message.format,
|
32
|
+
build_params(message)
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
# replace key and value schemas with
|
39
|
+
# their ids if those are found in cache
|
40
|
+
def build_params(message)
|
41
|
+
return message.params unless message.format == 'avro'
|
42
|
+
|
43
|
+
topic, params, format = message.topic, message.params, message.format
|
44
|
+
|
45
|
+
{}.tap do |_p|
|
46
|
+
if format == 'avro'
|
47
|
+
if key_schema = params[:key_schema]
|
48
|
+
if key_schema_id = @key_schema_cache[topic]
|
49
|
+
_p[:key_schema_id] = key_schema_id
|
50
|
+
else
|
51
|
+
_p[:key_schema] = key_schema
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
if value_schema_id = @value_schema_cache[topic]
|
56
|
+
_p[:value_schema_id] = value_schema_id
|
57
|
+
else
|
58
|
+
_p[:value_schema] = params[:value_schema]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def send_produce_request!(topic, payload, format, params)
|
65
|
+
@client.topic_produce_message(topic, payload, format, params).body.tap do |re|
|
66
|
+
# this too (line 27)
|
67
|
+
cache_schema_ids!(re, topic) if format == 'avro'
|
68
|
+
end['offsets']
|
69
|
+
end
|
70
|
+
|
71
|
+
def cache_schema_ids!(resp, topic)
|
72
|
+
@lock.synchronize do
|
73
|
+
if @key_schema_cache[topic].nil? && kid = resp['key_schema_id']
|
74
|
+
@key_schema_cache[topic] = kid
|
75
|
+
end
|
76
|
+
|
77
|
+
if @value_schema_cache[topic].nil? && vid = resp['value_schema_id']
|
78
|
+
@value_schema_cache[topic] = vid
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module KafkaRest
|
2
|
+
module Sender
|
3
|
+
class TestSender
|
4
|
+
attr_reader :messages
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@lock = Mutex.new
|
8
|
+
@messages = {}
|
9
|
+
end
|
10
|
+
|
11
|
+
def send!(message)
|
12
|
+
@lock.synchronize do
|
13
|
+
topic = message.topic
|
14
|
+
@messages[topic] ||= []
|
15
|
+
@messages[topic] << message
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def last_for(topic)
|
20
|
+
@messages[topic].last
|
21
|
+
end
|
22
|
+
|
23
|
+
def reset!
|
24
|
+
@messages = {}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/kafka_rest/sender.rb
CHANGED
@@ -1,81 +1,13 @@
|
|
1
1
|
require 'thread'
|
2
|
-
require 'kafka_rest/sender/payload'
|
3
2
|
|
4
3
|
module KafkaRest
|
5
|
-
|
6
|
-
|
4
|
+
module Sender
|
5
|
+
require 'kafka_rest/sender/kafka_sender'
|
6
|
+
require 'kafka_rest/sender/log_sender'
|
7
|
+
require 'kafka_rest/sender/test_sender'
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
@@lock.synchronize do
|
11
|
-
@instance ||= self.new(Client.new, lock: @@lock)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
attr_reader :key_schema_cache, :value_schema_cache
|
17
|
-
|
18
|
-
# TODO: buffering???
|
19
|
-
def initialize(client, opts = {})
|
20
|
-
@lock = opts[:lock] || Mutex.new
|
21
|
-
@client = client
|
22
|
-
@key_schema_cache = {}
|
23
|
-
@value_schema_cache = {}
|
24
|
-
end
|
25
|
-
|
26
|
-
# TODO: back-off retry if offset[i].errors is a retriable error
|
27
|
-
def send!(klass, obj, opts = {})
|
28
|
-
topic, payload, format, params = build_request(klass, obj, opts)
|
29
|
-
send_produce_request!(topic, payload, format, params)
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def build_request(klass, obj, opts)
|
35
|
-
# TODO: oooh, dirty and weird - this should not be here.
|
36
|
-
# come up with something good!
|
37
|
-
topic = klass.get_topic.to_s
|
38
|
-
key = klass.get_key
|
39
|
-
payload = Payload.new(klass, obj, opts).build
|
40
|
-
format = klass.get_format.to_s
|
41
|
-
params = {}.tap do |_p|
|
42
|
-
if format == 'avro'
|
43
|
-
unless key.nil?
|
44
|
-
if kid = @key_schema_cache[topic]
|
45
|
-
_p[:key_schema_id] = kid
|
46
|
-
else
|
47
|
-
_p[:key_schema] = klass.get_key_schema
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
if vid = @value_schema_cache[topic]
|
52
|
-
_p[:value_schema_id] = vid
|
53
|
-
else
|
54
|
-
_p[:value_schema] = klass.get_value_schema
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
[topic, payload, format, params]
|
60
|
-
end
|
61
|
-
|
62
|
-
def send_produce_request!(topic, payload, format, params)
|
63
|
-
@client.topic_produce_message(topic, payload, format, params).body.tap do |re|
|
64
|
-
# this too (line 27)
|
65
|
-
cache_schema_ids!(re, topic) if format == 'avro'
|
66
|
-
end['offsets']
|
67
|
-
end
|
68
|
-
|
69
|
-
def cache_schema_ids!(resp, topic)
|
70
|
-
@lock.synchronize do
|
71
|
-
if @key_schema_cache[topic].nil? && kid = resp['key_schema_id']
|
72
|
-
@key_schema_cache[topic] = kid
|
73
|
-
end
|
74
|
-
|
75
|
-
if @value_schema_cache[topic].nil? && vid = resp['value_schema_id']
|
76
|
-
@value_schema_cache[topic] = vid
|
77
|
-
end
|
78
|
-
end
|
9
|
+
def self.valid?(sender)
|
10
|
+
sender.respond_to? :send!
|
79
11
|
end
|
80
12
|
end
|
81
13
|
end
|
data/lib/kafka_rest/version.rb
CHANGED
data/lib/kafka_rest.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
module KafkaRest; end
|
2
|
+
|
3
|
+
require 'kafka_rest/exceptions'
|
4
|
+
require 'kafka_rest/sender'
|
1
5
|
require 'kafka_rest/config'
|
2
6
|
require 'kafka_rest/logging'
|
3
7
|
require 'kafka_rest/client'
|
4
8
|
require 'kafka_rest/worker'
|
5
9
|
require 'kafka_rest/producer'
|
10
|
+
require 'kafka_rest/producer/message'
|
6
11
|
require 'kafka_rest/producer/serialization/adapter'
|
7
|
-
require 'kafka_rest/sender'
|
8
12
|
require 'kafka_rest/consumer'
|
9
13
|
|
10
14
|
KafkaRest.configure do |c|
|
metadata
CHANGED
@@ -1,153 +1,153 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kafka-rest-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.alpha4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Theodore Konukhov
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- - ~>
|
17
|
+
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: '0.9'
|
19
|
-
name: faraday
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: net-http-persistent
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- - ~>
|
31
|
+
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '2.9'
|
33
|
-
name: net-http-persistent
|
34
|
-
prerelease: false
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.9'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: faraday_middleware
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
|
-
- - ~>
|
45
|
+
- - "~>"
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: '0.10'
|
47
|
-
name: faraday_middleware
|
48
|
-
prerelease: false
|
49
48
|
type: :runtime
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: concurrent-ruby
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
|
-
- - ~>
|
59
|
+
- - "~>"
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: '1.0'
|
61
|
-
name: concurrent-ruby
|
62
|
-
prerelease: false
|
63
62
|
type: :runtime
|
63
|
+
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
+
name: multi_json
|
70
71
|
requirement: !ruby/object:Gem::Requirement
|
71
72
|
requirements:
|
72
|
-
- - ~>
|
73
|
+
- - "~>"
|
73
74
|
- !ruby/object:Gem::Version
|
74
75
|
version: '1.12'
|
75
|
-
name: multi_json
|
76
|
-
prerelease: false
|
77
76
|
type: :runtime
|
77
|
+
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.12'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
+
name: connection_pool
|
84
85
|
requirement: !ruby/object:Gem::Requirement
|
85
86
|
requirements:
|
86
|
-
- - ~>
|
87
|
+
- - "~>"
|
87
88
|
- !ruby/object:Gem::Version
|
88
89
|
version: '2.2'
|
89
|
-
name: connection_pool
|
90
|
-
prerelease: false
|
91
90
|
type: :runtime
|
91
|
+
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '2.2'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
+
name: oj
|
98
99
|
requirement: !ruby/object:Gem::Requirement
|
99
100
|
requirements:
|
100
|
-
- -
|
101
|
+
- - ">="
|
101
102
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
103
|
-
name: jrjackson
|
104
|
-
prerelease: false
|
103
|
+
version: '2.9'
|
105
104
|
type: :runtime
|
105
|
+
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: '2.9'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
+
name: bundler
|
112
113
|
requirement: !ruby/object:Gem::Requirement
|
113
114
|
requirements:
|
114
|
-
- - ~>
|
115
|
+
- - "~>"
|
115
116
|
- !ruby/object:Gem::Version
|
116
117
|
version: '1.12'
|
117
|
-
name: bundler
|
118
|
-
prerelease: false
|
119
118
|
type: :development
|
119
|
+
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - ~>
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '1.12'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake
|
126
127
|
requirement: !ruby/object:Gem::Requirement
|
127
128
|
requirements:
|
128
|
-
- - ~>
|
129
|
+
- - "~>"
|
129
130
|
- !ruby/object:Gem::Version
|
130
131
|
version: '10.0'
|
131
|
-
name: rake
|
132
|
-
prerelease: false
|
133
132
|
type: :development
|
133
|
+
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - ~>
|
136
|
+
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '10.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
+
name: rspec
|
140
141
|
requirement: !ruby/object:Gem::Requirement
|
141
142
|
requirements:
|
142
|
-
- - ~>
|
143
|
+
- - "~>"
|
143
144
|
- !ruby/object:Gem::Version
|
144
145
|
version: '3.0'
|
145
|
-
name: rspec
|
146
|
-
prerelease: false
|
147
146
|
type: :development
|
147
|
+
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - ~>
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '3.0'
|
153
153
|
description: Kafka-REST client, DSLs and consumer workers for Ruby.
|
@@ -158,9 +158,9 @@ executables:
|
|
158
158
|
extensions: []
|
159
159
|
extra_rdoc_files: []
|
160
160
|
files:
|
161
|
-
- .gitignore
|
162
|
-
- .rspec
|
163
|
-
- .travis.yml
|
161
|
+
- ".gitignore"
|
162
|
+
- ".rspec"
|
163
|
+
- ".travis.yml"
|
164
164
|
- CODE_OF_CONDUCT.md
|
165
165
|
- Gemfile
|
166
166
|
- LICENSE.txt
|
@@ -177,17 +177,22 @@ files:
|
|
177
177
|
- lib/kafka_rest/config.rb
|
178
178
|
- lib/kafka_rest/consumer.rb
|
179
179
|
- lib/kafka_rest/dsl.rb
|
180
|
+
- lib/kafka_rest/exceptions.rb
|
180
181
|
- lib/kafka_rest/logging.rb
|
181
182
|
- lib/kafka_rest/producer.rb
|
183
|
+
- lib/kafka_rest/producer/message.rb
|
184
|
+
- lib/kafka_rest/producer/payload.rb
|
185
|
+
- lib/kafka_rest/producer/payload/avro_builder.rb
|
186
|
+
- lib/kafka_rest/producer/payload/binary_builder.rb
|
187
|
+
- lib/kafka_rest/producer/payload/builder.rb
|
188
|
+
- lib/kafka_rest/producer/payload/json_builder.rb
|
182
189
|
- lib/kafka_rest/producer/serialization/active_model.rb
|
183
190
|
- lib/kafka_rest/producer/serialization/adapter.rb
|
184
191
|
- lib/kafka_rest/producer/serialization/noop.rb
|
185
192
|
- lib/kafka_rest/sender.rb
|
186
|
-
- lib/kafka_rest/sender/
|
187
|
-
- lib/kafka_rest/sender/
|
188
|
-
- lib/kafka_rest/sender/
|
189
|
-
- lib/kafka_rest/sender/payload/builder.rb
|
190
|
-
- lib/kafka_rest/sender/payload/json_builder.rb
|
193
|
+
- lib/kafka_rest/sender/kafka_sender.rb
|
194
|
+
- lib/kafka_rest/sender/log_sender.rb
|
195
|
+
- lib/kafka_rest/sender/test_sender.rb
|
191
196
|
- lib/kafka_rest/version.rb
|
192
197
|
- lib/kafka_rest/worker.rb
|
193
198
|
- lib/kafka_rest/worker/consumer_manager.rb
|
@@ -196,24 +201,24 @@ homepage: https://github.com/konukhov/kafka-rest-rb
|
|
196
201
|
licenses:
|
197
202
|
- MIT
|
198
203
|
metadata: {}
|
199
|
-
post_install_message:
|
204
|
+
post_install_message:
|
200
205
|
rdoc_options: []
|
201
206
|
require_paths:
|
202
207
|
- lib
|
203
208
|
required_ruby_version: !ruby/object:Gem::Requirement
|
204
209
|
requirements:
|
205
|
-
- -
|
210
|
+
- - ">="
|
206
211
|
- !ruby/object:Gem::Version
|
207
212
|
version: '0'
|
208
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
214
|
requirements:
|
210
|
-
- -
|
215
|
+
- - ">"
|
211
216
|
- !ruby/object:Gem::Version
|
212
217
|
version: 1.3.1
|
213
218
|
requirements: []
|
214
|
-
rubyforge_project:
|
215
|
-
rubygems_version: 2.1
|
216
|
-
signing_key:
|
219
|
+
rubyforge_project:
|
220
|
+
rubygems_version: 2.5.1
|
221
|
+
signing_key:
|
217
222
|
specification_version: 4
|
218
223
|
summary: Kafka-REST proxy client for Ruby on Rails.
|
219
224
|
test_files: []
|