karafka 1.3.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/.coditsu/ci.yml +3 -0
- data/.console_irbrc +11 -0
- data/.github/FUNDING.yml +3 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +50 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.gitignore +69 -0
- data/.rspec +1 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +36 -0
- data/CHANGELOG.md +520 -0
- data/CODE_OF_CONDUCT.md +46 -0
- data/CONTRIBUTING.md +41 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +137 -0
- data/MIT-LICENCE +18 -0
- data/README.md +101 -0
- data/bin/karafka +19 -0
- data/certs/mensfeld.pem +25 -0
- data/config/errors.yml +39 -0
- data/karafka.gemspec +44 -0
- data/lib/karafka.rb +71 -0
- data/lib/karafka/app.rb +53 -0
- data/lib/karafka/attributes_map.rb +68 -0
- data/lib/karafka/backends/inline.rb +16 -0
- data/lib/karafka/base_consumer.rb +57 -0
- data/lib/karafka/base_responder.rb +226 -0
- data/lib/karafka/cli.rb +54 -0
- data/lib/karafka/cli/base.rb +78 -0
- data/lib/karafka/cli/console.rb +31 -0
- data/lib/karafka/cli/flow.rb +45 -0
- data/lib/karafka/cli/info.rb +31 -0
- data/lib/karafka/cli/install.rb +64 -0
- data/lib/karafka/cli/server.rb +71 -0
- data/lib/karafka/code_reloader.rb +67 -0
- data/lib/karafka/connection/api_adapter.rb +155 -0
- data/lib/karafka/connection/batch_delegator.rb +51 -0
- data/lib/karafka/connection/builder.rb +16 -0
- data/lib/karafka/connection/client.rb +117 -0
- data/lib/karafka/connection/listener.rb +71 -0
- data/lib/karafka/connection/message_delegator.rb +36 -0
- data/lib/karafka/consumers/callbacks.rb +71 -0
- data/lib/karafka/consumers/includer.rb +63 -0
- data/lib/karafka/consumers/metadata.rb +10 -0
- data/lib/karafka/consumers/responders.rb +24 -0
- data/lib/karafka/consumers/single_params.rb +15 -0
- data/lib/karafka/contracts.rb +10 -0
- data/lib/karafka/contracts/config.rb +21 -0
- data/lib/karafka/contracts/consumer_group.rb +206 -0
- data/lib/karafka/contracts/consumer_group_topic.rb +19 -0
- data/lib/karafka/contracts/responder_usage.rb +54 -0
- data/lib/karafka/contracts/server_cli_options.rb +29 -0
- data/lib/karafka/errors.rb +51 -0
- data/lib/karafka/fetcher.rb +42 -0
- data/lib/karafka/helpers/class_matcher.rb +88 -0
- data/lib/karafka/helpers/config_retriever.rb +46 -0
- data/lib/karafka/helpers/inflector.rb +26 -0
- data/lib/karafka/helpers/multi_delegator.rb +32 -0
- data/lib/karafka/instrumentation/logger.rb +57 -0
- data/lib/karafka/instrumentation/monitor.rb +70 -0
- data/lib/karafka/instrumentation/proctitle_listener.rb +36 -0
- data/lib/karafka/instrumentation/stdout_listener.rb +138 -0
- data/lib/karafka/params/builders/metadata.rb +33 -0
- data/lib/karafka/params/builders/params.rb +36 -0
- data/lib/karafka/params/builders/params_batch.rb +25 -0
- data/lib/karafka/params/metadata.rb +35 -0
- data/lib/karafka/params/params.rb +68 -0
- data/lib/karafka/params/params_batch.rb +61 -0
- data/lib/karafka/patches/ruby_kafka.rb +47 -0
- data/lib/karafka/persistence/client.rb +29 -0
- data/lib/karafka/persistence/consumers.rb +45 -0
- data/lib/karafka/persistence/topics.rb +48 -0
- data/lib/karafka/process.rb +60 -0
- data/lib/karafka/responders/builder.rb +36 -0
- data/lib/karafka/responders/topic.rb +55 -0
- data/lib/karafka/routing/builder.rb +89 -0
- data/lib/karafka/routing/consumer_group.rb +61 -0
- data/lib/karafka/routing/consumer_mapper.rb +34 -0
- data/lib/karafka/routing/proxy.rb +46 -0
- data/lib/karafka/routing/router.rb +29 -0
- data/lib/karafka/routing/topic.rb +62 -0
- data/lib/karafka/routing/topic_mapper.rb +53 -0
- data/lib/karafka/serialization/json/deserializer.rb +27 -0
- data/lib/karafka/serialization/json/serializer.rb +31 -0
- data/lib/karafka/server.rb +83 -0
- data/lib/karafka/setup/config.rb +221 -0
- data/lib/karafka/setup/configurators/water_drop.rb +36 -0
- data/lib/karafka/setup/dsl.rb +21 -0
- data/lib/karafka/status.rb +29 -0
- data/lib/karafka/templates/application_consumer.rb.erb +7 -0
- data/lib/karafka/templates/application_responder.rb.erb +11 -0
- data/lib/karafka/templates/karafka.rb.erb +92 -0
- data/lib/karafka/version.rb +7 -0
- data/log/.gitkeep +0 -0
- metadata +336 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Karafka
|
4
|
+
module Setup
|
5
|
+
# Configurators are used to post setup some of the components of Karafka after the core
|
6
|
+
# framework is initialized
|
7
|
+
module Configurators
|
8
|
+
# Class responsible for setting up WaterDrop configuration
|
9
|
+
class WaterDrop
|
10
|
+
# Sets up a WaterDrop settings
|
11
|
+
# @param config [Karafka::Setup::Config] Config we can user to setup things
|
12
|
+
# @note This will also inject Karafka monitor as a default monitor into WaterDrop,
|
13
|
+
# so we have the same monitor within whole Karafka framework (same with logger)
|
14
|
+
def call(config)
|
15
|
+
::WaterDrop.setup do |water_config|
|
16
|
+
water_config.deliver = true
|
17
|
+
|
18
|
+
config.to_h.reject { |k, _v| k == :kafka }.each do |k, v|
|
19
|
+
key_assignment = :"#{k}="
|
20
|
+
next unless water_config.respond_to?(key_assignment)
|
21
|
+
|
22
|
+
water_config.public_send(key_assignment, v)
|
23
|
+
end
|
24
|
+
|
25
|
+
config.kafka.to_h.each do |k, v|
|
26
|
+
key_assignment = :"#{k}="
|
27
|
+
next unless water_config.kafka.respond_to?(key_assignment)
|
28
|
+
|
29
|
+
water_config.kafka.public_send(key_assignment, v)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Karafka
|
4
|
+
module Setup
|
5
|
+
# Dsl for allowing to work with the configuration from the Karafka::App
|
6
|
+
# @note Despite providing methods, everything is still persisted and fetched
|
7
|
+
# from the Karafka::Setup::Config
|
8
|
+
module Dsl
|
9
|
+
# Sets up the whole configuration
|
10
|
+
# @param [Block] block configuration block
|
11
|
+
def setup(&block)
|
12
|
+
Setup::Config.setup(&block)
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [Karafka::Config] config instance
|
16
|
+
def config
|
17
|
+
Setup::Config.config
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Karafka
|
4
|
+
# App status monitor
|
5
|
+
class Status
|
6
|
+
# Available states and their transitions
|
7
|
+
STATES = {
|
8
|
+
initializing: :initialize!,
|
9
|
+
initialized: :initialized!,
|
10
|
+
running: :run!,
|
11
|
+
stopping: :stop!
|
12
|
+
}.freeze
|
13
|
+
|
14
|
+
private_constant :STATES
|
15
|
+
|
16
|
+
STATES.each do |state, transition|
|
17
|
+
define_method :"#{state}?" do
|
18
|
+
@status == state
|
19
|
+
end
|
20
|
+
|
21
|
+
define_method transition do
|
22
|
+
@status = state
|
23
|
+
# Trap context disallows to run certain things that we instrument
|
24
|
+
# so the state changes are executed from a separate thread
|
25
|
+
Thread.new { Karafka.monitor.instrument("app.#{state}") }.join
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Application consumer from which all Karafka consumers should inherit
|
4
|
+
# You can rename it if it would conflict with your current code base (in case you're integrating
|
5
|
+
# Karafka with other frameworks)
|
6
|
+
class ApplicationConsumer < Karafka::BaseConsumer
|
7
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Application responder from which all Karafka responders should inherit
|
4
|
+
# You can rename it if it would conflict with your current code base (in case you're integrating
|
5
|
+
# Karafka with other frameworks)
|
6
|
+
class ApplicationResponder < Karafka::BaseResponder
|
7
|
+
# This method needs to be implemented in each of the responders
|
8
|
+
# def respond(data)
|
9
|
+
# respond_to :topic, data.to_json
|
10
|
+
# end
|
11
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
<% if rails? -%>
|
4
|
+
ENV['RAILS_ENV'] ||= 'development'
|
5
|
+
ENV['KARAFKA_ENV'] = ENV['RAILS_ENV']
|
6
|
+
require ::File.expand_path('../config/environment', __FILE__)
|
7
|
+
Rails.application.eager_load!
|
8
|
+
|
9
|
+
# This lines will make Karafka print to stdout like puma or unicorn
|
10
|
+
if Rails.env.development?
|
11
|
+
Rails.logger.extend(
|
12
|
+
ActiveSupport::Logger.broadcast(
|
13
|
+
ActiveSupport::Logger.new($stdout)
|
14
|
+
)
|
15
|
+
)
|
16
|
+
end
|
17
|
+
<% else -%>
|
18
|
+
# This file is auto-generated during the install process.
|
19
|
+
# If by any chance you've wanted a setup for Rails app, either run the `karafka:install`
|
20
|
+
# command again or refer to the install templates available in the source codes
|
21
|
+
|
22
|
+
ENV['RACK_ENV'] ||= 'development'
|
23
|
+
ENV['KARAFKA_ENV'] ||= ENV['RACK_ENV']
|
24
|
+
Bundler.require(:default, ENV['KARAFKA_ENV'])
|
25
|
+
|
26
|
+
# Zeitwerk custom loader for loading the app components before the whole
|
27
|
+
# Karafka framework configuration
|
28
|
+
APP_LOADER = Zeitwerk::Loader.new
|
29
|
+
APP_LOADER.enable_reloading
|
30
|
+
|
31
|
+
%w[
|
32
|
+
lib
|
33
|
+
app/consumers
|
34
|
+
app/responders
|
35
|
+
app/workers
|
36
|
+
].each(&APP_LOADER.method(:push_dir))
|
37
|
+
|
38
|
+
APP_LOADER.setup
|
39
|
+
APP_LOADER.eager_load
|
40
|
+
<% end -%>
|
41
|
+
|
42
|
+
class KarafkaApp < Karafka::App
|
43
|
+
setup do |config|
|
44
|
+
config.kafka.seed_brokers = %w[kafka://127.0.0.1:9092]
|
45
|
+
config.client_id = 'example_app'
|
46
|
+
<% if rails? -%>
|
47
|
+
config.logger = Rails.logger
|
48
|
+
<% end -%>
|
49
|
+
end
|
50
|
+
|
51
|
+
# Comment out this part if you are not using instrumentation and/or you are not
|
52
|
+
# interested in logging events for certain environments. Since instrumentation
|
53
|
+
# notifications add extra boilerplate, if you want to achieve max performance,
|
54
|
+
# listen to only what you really need for given environment.
|
55
|
+
Karafka.monitor.subscribe(WaterDrop::Instrumentation::StdoutListener.new)
|
56
|
+
Karafka.monitor.subscribe(Karafka::Instrumentation::StdoutListener.new)
|
57
|
+
Karafka.monitor.subscribe(Karafka::Instrumentation::ProctitleListener.new)
|
58
|
+
|
59
|
+
# Uncomment that in order to achieve code reload in development mode
|
60
|
+
# Be aware, that this might have some side-effects. Please refer to the wiki
|
61
|
+
# for more details on benefits and downsides of the code reload in the
|
62
|
+
# development mode
|
63
|
+
#
|
64
|
+
# Karafka.monitor.subscribe(
|
65
|
+
# Karafka::CodeReloader.new(
|
66
|
+
# <%= rails? ? '*Rails.application.reloaders' : 'APP_LOADER' %>
|
67
|
+
# )
|
68
|
+
# )
|
69
|
+
|
70
|
+
consumer_groups.draw do
|
71
|
+
# topic :example do
|
72
|
+
# consumer ExampleConsumer
|
73
|
+
# end
|
74
|
+
|
75
|
+
# consumer_group :bigger_group do
|
76
|
+
# topic :test do
|
77
|
+
# consumer TestConsumer
|
78
|
+
# end
|
79
|
+
#
|
80
|
+
# topic :test2 do
|
81
|
+
# consumer Test2Consumer
|
82
|
+
# end
|
83
|
+
# end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
Karafka.monitor.subscribe('app.initialized') do
|
88
|
+
# Put here all the things you want to do after the Karafka framework
|
89
|
+
# initialization
|
90
|
+
end
|
91
|
+
|
92
|
+
KarafkaApp.boot!
|
data/log/.gitkeep
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,336 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: karafka
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Maciej Mensfeld
|
8
|
+
- Pavlo Vavruk
|
9
|
+
- Adam Gwozdowski
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain:
|
13
|
+
- |
|
14
|
+
-----BEGIN CERTIFICATE-----
|
15
|
+
MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhtYWNp
|
16
|
+
ZWovREM9bWVuc2ZlbGQvREM9cGwwHhcNMTkwNzMwMTQ1NDU0WhcNMjAwNzI5MTQ1
|
17
|
+
NDU0WjAjMSEwHwYDVQQDDBhtYWNpZWovREM9bWVuc2ZlbGQvREM9cGwwggGiMA0G
|
18
|
+
CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC9fCwtaHZG2SyyNXiH8r0QbJQx/xxl
|
19
|
+
dkvwWz9QGJO+O8rEx20FB1Ab+MVkfOscwIv5jWpmk1U9whzDPl1uFtIbgu+sk+Zb
|
20
|
+
uQlZyK/DPN6c+/BbBL+RryTBRyvkPLoCVwm7uxc/JZ1n4AI6eF4cCZ2ieZ9QgQbU
|
21
|
+
MQs2QPqs9hT50Ez/40GnOdadVfiDDGz+NME2C4ms0BriXwZ1tcRTfJIHe2xjIbbb
|
22
|
+
y5qRGfsLKcgMzvLQR24olixyX1MR0s4+Wveq3QL/gBhL4veUcv+UABJA8IJR0kyB
|
23
|
+
seHHutusiwZ1v3SjjjW1xLLrc2ARV0mgCb0WaK2T4iA3oFTGLh6Ydz8LNl31KQFv
|
24
|
+
94nRd8IhmJxrhQ6dQ/WT9IXoa5S9lfT5lPJeINemH4/6QPABzf9W2IZlCdI9wCdB
|
25
|
+
TBaw57MKneGAYZiKjw6OALSy2ltQUCl3RqFl3VP7n8uFy1U987Q5VIIQ3O1UUsQD
|
26
|
+
Oe/h+r7GUU4RSPKgPlrwvW9bD/UQ+zF51v8CAwEAAaN3MHUwCQYDVR0TBAIwADAL
|
27
|
+
BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJNIBHdfEUD7TqHqIer2YhWaWhwcMB0GA1Ud
|
28
|
+
EQQWMBSBEm1hY2llakBtZW5zZmVsZC5wbDAdBgNVHRIEFjAUgRJtYWNpZWpAbWVu
|
29
|
+
c2ZlbGQucGwwDQYJKoZIhvcNAQELBQADggGBAKA4eqko6BTNhlysip6rfBkVTGri
|
30
|
+
ZXsL+kRb2hLvsQJS/kLyM21oMlu+LN0aPj3qEFR8mE/YeDD8rLAfruBRTltPNbR7
|
31
|
+
xA5eE1gkxY5LfExUtK3b2wPqfmo7mZgfcsMwfYg/tUXw1WpBCnrhAJodpGH6SXmp
|
32
|
+
A40qFUZst0vjiOoO+aTblIHPmMJXoZ3K42dTlNKlEiDKUWMRKSgpjjYGEYalFNWI
|
33
|
+
hHfCz2r8L2t+dYdMZg1JGbEkq4ADGsAA8ioZIpJd7V4hI17u5TCdi7X5wh/0gN0E
|
34
|
+
CgP+nLox3D+l2q0QuQEkayr+auFYkzTCkF+BmEk1D0Ru4mcf3F4CJvEmW4Pzbjqt
|
35
|
+
i1tsCWPtJ4E/UUKnKaWKqGbjrjHJ0MuShYzHkodox5IOiCXIQg+1+YSzfXUV6WEK
|
36
|
+
KJG/fhg1JV5vVDdVy6x+tv5SQ5ctU0feCsVfESi3rE3zRd+nvzE9HcZ5aXeL1UtJ
|
37
|
+
nT5Xrioegu2w1jPyVEgyZgTZC5rvD0nNS5sFNQ==
|
38
|
+
-----END CERTIFICATE-----
|
39
|
+
date: 2019-09-09 00:00:00.000000000 Z
|
40
|
+
dependencies:
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: dry-configurable
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.8'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.8'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: dry-inflector
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.1'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: dry-monitor
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.3'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: dry-validation
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.2'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.2'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: envlogic
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.1'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.1'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: irb
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: multi_json
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.12'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.12'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rake
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '11.3'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '11.3'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: ruby-kafka
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.7.8
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.7.8
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: thor
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.20'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.20'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: waterdrop
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 1.3.0
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 1.3.0
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: zeitwerk
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '2.1'
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '2.1'
|
209
|
+
description: Framework used to simplify Apache Kafka based Ruby applications development
|
210
|
+
email:
|
211
|
+
- maciej@coditsu.io
|
212
|
+
- pavlo.vavruk@gmail.com
|
213
|
+
- adam99g@gmail.com
|
214
|
+
executables:
|
215
|
+
- karafka
|
216
|
+
extensions: []
|
217
|
+
extra_rdoc_files: []
|
218
|
+
files:
|
219
|
+
- ".coditsu/ci.yml"
|
220
|
+
- ".console_irbrc"
|
221
|
+
- ".github/FUNDING.yml"
|
222
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
223
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
224
|
+
- ".gitignore"
|
225
|
+
- ".rspec"
|
226
|
+
- ".ruby-gemset"
|
227
|
+
- ".ruby-version"
|
228
|
+
- ".travis.yml"
|
229
|
+
- CHANGELOG.md
|
230
|
+
- CODE_OF_CONDUCT.md
|
231
|
+
- CONTRIBUTING.md
|
232
|
+
- Gemfile
|
233
|
+
- Gemfile.lock
|
234
|
+
- MIT-LICENCE
|
235
|
+
- README.md
|
236
|
+
- bin/karafka
|
237
|
+
- certs/mensfeld.pem
|
238
|
+
- config/errors.yml
|
239
|
+
- karafka.gemspec
|
240
|
+
- lib/karafka.rb
|
241
|
+
- lib/karafka/app.rb
|
242
|
+
- lib/karafka/attributes_map.rb
|
243
|
+
- lib/karafka/backends/inline.rb
|
244
|
+
- lib/karafka/base_consumer.rb
|
245
|
+
- lib/karafka/base_responder.rb
|
246
|
+
- lib/karafka/cli.rb
|
247
|
+
- lib/karafka/cli/base.rb
|
248
|
+
- lib/karafka/cli/console.rb
|
249
|
+
- lib/karafka/cli/flow.rb
|
250
|
+
- lib/karafka/cli/info.rb
|
251
|
+
- lib/karafka/cli/install.rb
|
252
|
+
- lib/karafka/cli/server.rb
|
253
|
+
- lib/karafka/code_reloader.rb
|
254
|
+
- lib/karafka/connection/api_adapter.rb
|
255
|
+
- lib/karafka/connection/batch_delegator.rb
|
256
|
+
- lib/karafka/connection/builder.rb
|
257
|
+
- lib/karafka/connection/client.rb
|
258
|
+
- lib/karafka/connection/listener.rb
|
259
|
+
- lib/karafka/connection/message_delegator.rb
|
260
|
+
- lib/karafka/consumers/callbacks.rb
|
261
|
+
- lib/karafka/consumers/includer.rb
|
262
|
+
- lib/karafka/consumers/metadata.rb
|
263
|
+
- lib/karafka/consumers/responders.rb
|
264
|
+
- lib/karafka/consumers/single_params.rb
|
265
|
+
- lib/karafka/contracts.rb
|
266
|
+
- lib/karafka/contracts/config.rb
|
267
|
+
- lib/karafka/contracts/consumer_group.rb
|
268
|
+
- lib/karafka/contracts/consumer_group_topic.rb
|
269
|
+
- lib/karafka/contracts/responder_usage.rb
|
270
|
+
- lib/karafka/contracts/server_cli_options.rb
|
271
|
+
- lib/karafka/errors.rb
|
272
|
+
- lib/karafka/fetcher.rb
|
273
|
+
- lib/karafka/helpers/class_matcher.rb
|
274
|
+
- lib/karafka/helpers/config_retriever.rb
|
275
|
+
- lib/karafka/helpers/inflector.rb
|
276
|
+
- lib/karafka/helpers/multi_delegator.rb
|
277
|
+
- lib/karafka/instrumentation/logger.rb
|
278
|
+
- lib/karafka/instrumentation/monitor.rb
|
279
|
+
- lib/karafka/instrumentation/proctitle_listener.rb
|
280
|
+
- lib/karafka/instrumentation/stdout_listener.rb
|
281
|
+
- lib/karafka/params/builders/metadata.rb
|
282
|
+
- lib/karafka/params/builders/params.rb
|
283
|
+
- lib/karafka/params/builders/params_batch.rb
|
284
|
+
- lib/karafka/params/metadata.rb
|
285
|
+
- lib/karafka/params/params.rb
|
286
|
+
- lib/karafka/params/params_batch.rb
|
287
|
+
- lib/karafka/patches/ruby_kafka.rb
|
288
|
+
- lib/karafka/persistence/client.rb
|
289
|
+
- lib/karafka/persistence/consumers.rb
|
290
|
+
- lib/karafka/persistence/topics.rb
|
291
|
+
- lib/karafka/process.rb
|
292
|
+
- lib/karafka/responders/builder.rb
|
293
|
+
- lib/karafka/responders/topic.rb
|
294
|
+
- lib/karafka/routing/builder.rb
|
295
|
+
- lib/karafka/routing/consumer_group.rb
|
296
|
+
- lib/karafka/routing/consumer_mapper.rb
|
297
|
+
- lib/karafka/routing/proxy.rb
|
298
|
+
- lib/karafka/routing/router.rb
|
299
|
+
- lib/karafka/routing/topic.rb
|
300
|
+
- lib/karafka/routing/topic_mapper.rb
|
301
|
+
- lib/karafka/serialization/json/deserializer.rb
|
302
|
+
- lib/karafka/serialization/json/serializer.rb
|
303
|
+
- lib/karafka/server.rb
|
304
|
+
- lib/karafka/setup/config.rb
|
305
|
+
- lib/karafka/setup/configurators/water_drop.rb
|
306
|
+
- lib/karafka/setup/dsl.rb
|
307
|
+
- lib/karafka/status.rb
|
308
|
+
- lib/karafka/templates/application_consumer.rb.erb
|
309
|
+
- lib/karafka/templates/application_responder.rb.erb
|
310
|
+
- lib/karafka/templates/karafka.rb.erb
|
311
|
+
- lib/karafka/version.rb
|
312
|
+
- log/.gitkeep
|
313
|
+
homepage: https://github.com/karafka/karafka
|
314
|
+
licenses:
|
315
|
+
- MIT
|
316
|
+
metadata: {}
|
317
|
+
post_install_message:
|
318
|
+
rdoc_options: []
|
319
|
+
require_paths:
|
320
|
+
- lib
|
321
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
322
|
+
requirements:
|
323
|
+
- - ">="
|
324
|
+
- !ruby/object:Gem::Version
|
325
|
+
version: 2.4.0
|
326
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
327
|
+
requirements:
|
328
|
+
- - ">="
|
329
|
+
- !ruby/object:Gem::Version
|
330
|
+
version: '0'
|
331
|
+
requirements: []
|
332
|
+
rubygems_version: 3.0.3
|
333
|
+
signing_key:
|
334
|
+
specification_version: 4
|
335
|
+
summary: Ruby based framework for working with Apache Kafka
|
336
|
+
test_files: []
|