karafka-rdkafka 0.21.0.rc1-arm64-darwin → 0.22.0.rc1-arm64-darwin

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -2
  3. data/README.md +36 -135
  4. data/docker-compose-ssl.yml +35 -0
  5. data/ext/librdkafka.dylib +0 -0
  6. data/karafka-rdkafka.gemspec +35 -6
  7. data/lib/rdkafka/bindings.rb +0 -1
  8. data/lib/rdkafka/consumer.rb +1 -1
  9. data/lib/rdkafka/version.rb +3 -3
  10. data/renovate.json +5 -17
  11. metadata +32 -52
  12. data/.github/CODEOWNERS +0 -3
  13. data/.github/FUNDING.yml +0 -1
  14. data/.github/workflows/ci_linux_x86_64_gnu.yml +0 -271
  15. data/.github/workflows/ci_linux_x86_64_musl.yml +0 -194
  16. data/.github/workflows/ci_macos_arm64.yml +0 -284
  17. data/.github/workflows/push_linux_x86_64_gnu.yml +0 -65
  18. data/.github/workflows/push_linux_x86_64_musl.yml +0 -79
  19. data/.github/workflows/push_macos_arm64.yml +0 -54
  20. data/.github/workflows/push_ruby.yml +0 -37
  21. data/.github/workflows/verify-action-pins.yml +0 -16
  22. data/.gitignore +0 -15
  23. data/.rspec +0 -2
  24. data/.ruby-gemset +0 -1
  25. data/.ruby-version +0 -1
  26. data/.yardopts +0 -2
  27. data/ext/README.md +0 -19
  28. data/ext/Rakefile +0 -131
  29. data/ext/build_common.sh +0 -361
  30. data/ext/build_linux_x86_64_gnu.sh +0 -306
  31. data/ext/build_linux_x86_64_musl.sh +0 -763
  32. data/ext/build_macos_arm64.sh +0 -550
  33. data/spec/rdkafka/abstract_handle_spec.rb +0 -117
  34. data/spec/rdkafka/admin/create_acl_handle_spec.rb +0 -56
  35. data/spec/rdkafka/admin/create_acl_report_spec.rb +0 -18
  36. data/spec/rdkafka/admin/create_topic_handle_spec.rb +0 -54
  37. data/spec/rdkafka/admin/create_topic_report_spec.rb +0 -16
  38. data/spec/rdkafka/admin/delete_acl_handle_spec.rb +0 -85
  39. data/spec/rdkafka/admin/delete_acl_report_spec.rb +0 -72
  40. data/spec/rdkafka/admin/delete_topic_handle_spec.rb +0 -54
  41. data/spec/rdkafka/admin/delete_topic_report_spec.rb +0 -16
  42. data/spec/rdkafka/admin/describe_acl_handle_spec.rb +0 -85
  43. data/spec/rdkafka/admin/describe_acl_report_spec.rb +0 -73
  44. data/spec/rdkafka/admin_spec.rb +0 -970
  45. data/spec/rdkafka/bindings_spec.rb +0 -198
  46. data/spec/rdkafka/callbacks_spec.rb +0 -20
  47. data/spec/rdkafka/config_spec.rb +0 -258
  48. data/spec/rdkafka/consumer/headers_spec.rb +0 -73
  49. data/spec/rdkafka/consumer/message_spec.rb +0 -139
  50. data/spec/rdkafka/consumer/partition_spec.rb +0 -57
  51. data/spec/rdkafka/consumer/topic_partition_list_spec.rb +0 -248
  52. data/spec/rdkafka/consumer_spec.rb +0 -1296
  53. data/spec/rdkafka/error_spec.rb +0 -95
  54. data/spec/rdkafka/metadata_spec.rb +0 -79
  55. data/spec/rdkafka/native_kafka_spec.rb +0 -130
  56. data/spec/rdkafka/producer/delivery_handle_spec.rb +0 -60
  57. data/spec/rdkafka/producer/delivery_report_spec.rb +0 -25
  58. data/spec/rdkafka/producer/partitions_count_cache_spec.rb +0 -359
  59. data/spec/rdkafka/producer_spec.rb +0 -1526
  60. data/spec/spec_helper.rb +0 -193
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8160e5e8d73a03098ff7f78f36b6a542cf2c5f1dd67cab62caa6d897a01ccda1
4
- data.tar.gz: 2217f2a2869a1156e5e7f31b0e42bf98509692020a62a09353c8dcbcf01d7b9f
3
+ metadata.gz: 84351f5ea677c8b0eae5f0d7430894e3ffa9b3c43e4f83e9562f9bb7beaf9fe9
4
+ data.tar.gz: ab686d9abe352cba88a293280681b335444e99052516c557397f521e4babec8f
5
5
  SHA512:
6
- metadata.gz: 02d79491d87f02d6a8241ce7d65f849e4736be6e93e35d73edd2b4ddb80c45c1245114ad329d2a04158ba6eb9af8e3cd270c83992269c0ba3a949cde226cc9d0
7
- data.tar.gz: 279aebe607bb9ead1b70ace1f56387fb39e98c6e75762aa91bf03bb918379e489a0f13365b2633d18cd1c140a52b72e3d43cd91187b85586389ebfd972c0febd
6
+ metadata.gz: d53d3a66d5a008718b07c1c0fcae98c55e56211df04de0b26a4d3f5e15b504bd03e1a812251da6be83ae58aadba0af37e23124b40b2163eee87e9698655e63f1
7
+ data.tar.gz: cd201cd0cbaeb98fea15239ceda02d90d2dffb119a79550226c77861f8fc5a3665ba6f12dcf5061f7efcb732207b1eb0ff8ec141731d32d163865e1da34e7726
data/CHANGELOG.md CHANGED
@@ -1,12 +1,25 @@
1
1
  # Rdkafka Changelog
2
2
 
3
- ## 0.21.0 (Unreleased)
4
- - [Enhancement] Bump librdkafka to 2.11.0
3
+ ## 0.22.0 (Unreleased)
4
+ - **[Breaking]** Drop support for Ruby 3.1 to move forward with the fiber scheduler work.
5
+ - [Enhancement] Bump librdkafka to 2.11.1.
6
+ - [Enhancement] Improve sigstore attestation for precompiled releases.
7
+ - [Fix] Fix incorrectly set default SSL certs dir.
8
+ - [Fix] Disable OpenSSL Heartbeats during compilation.
9
+
10
+ ## 0.21.0 (2025-08-18)
11
+ - [Enhancement] Support explicit Debian testing due to lib issues.
12
+ - [Enhancement] Support ARM64 Gnu precompilation.
13
+ - [Enhancement] Bump librdkafka to 2.11.0.
14
+ - [Enhancement] Improve what symbols are exposed outside of the precompiled extensions.
15
+ - [Enhancement] Introduce an integration suite layer for non RSpec specs execution.
16
+ - [Fix] Add `json` gem as a dependency (was missing but used).
5
17
 
6
18
  ## 0.20.1 (2025-07-17)
7
19
  - [Enhancement] Drastically increase number of platforms in the integration suite
8
20
  - [Fix] Support Ubuntu `22.04` and older Alpine precompiled versions
9
21
  - [Fix] FFI::DynamicLibrary.load_library': Could not open library
22
+ - [Change] Add new CI action to trigger auto-doc refresh.
10
23
 
11
24
  ## 0.20.0 (2025-07-17)
12
25
  - **[Feature]** Add precompiled `x86_64-linux-gnu` setup.
data/README.md CHANGED
@@ -1,169 +1,70 @@
1
- # Rdkafka
1
+ # Karafka-Rdkafka
2
2
 
3
- [![Build Status](https://github.com/karafka/karafka-rdkafka/actions/workflows/ci_linux_x86_64_gnu.yml/badge.svg)](https://github.com/karafka/karafka-rdkafka/actions/workflows/ci_linux_x86_64_gnu.yml)
3
+ [![Build Status](https://github.com/karafka/karafka-rdkafka/actions/workflows/ci_linux_ubuntu_x86_64_gnu.yml/badge.svg)](https://github.com/karafka/karafka-rdkafka/actions/workflows/ci_linux_x86_64_gnu.yml)
4
4
  [![Gem Version](https://badge.fury.io/rb/karafka-rdkafka.svg)](https://badge.fury.io/rb/karafka-rdkafka)
5
5
  [![Join the chat at https://slack.karafka.io](https://raw.githubusercontent.com/karafka/misc/master/slack.svg)](https://slack.karafka.io)
6
6
 
7
7
  > [!NOTE]
8
- > The `rdkafka-ruby` gem was created and developed by [AppSignal](https://www.appsignal.com/). Their impactful contributions have significantly shaped the Ruby Kafka and Karafka ecosystems. For robust monitoring, we highly recommend AppSignal.
8
+ > **Karafka-Rdkafka** is a fork of the [rdkafka-ruby](https://github.com/karafka/rdkafka-ruby) gem, specifically maintained for the [Karafka ecosystem](https://karafka.io). This fork exists to provide Karafka-specific patches and optimizations that are not generic enough for inclusion in the upstream rdkafka-ruby library.
9
9
 
10
10
  ---
11
11
 
12
- The `rdkafka` gem is a modern Kafka client library for Ruby based on
13
- [librdkafka](https://github.com/confluentinc/librdkafka/).
14
- It wraps the production-ready C client using the [ffi](https://github.com/ffi/ffi)
15
- gem and targets Kafka 1.0+ and Ruby versions under security or
16
- active maintenance. We remove a Ruby version from our CI builds when they
17
- become EOL.
12
+ ## Why This Fork Exists
18
13
 
19
- `rdkafka` was written because of the need for a reliable Ruby client for Kafka that supports modern Kafka at [AppSignal](https://appsignal.com). AppSignal runs it in production on very high-traffic systems.
14
+ While rdkafka-ruby serves as an excellent general-purpose Kafka client for Ruby, Karafka requires specific optimizations and patches that are:
20
15
 
21
- The most essential pieces of a Kafka client are implemented, and we aim to provide all relevant consumer, producer, and admin APIs.
16
+ - **Karafka-specific**: Tailored for Karafka's unique processing patterns and requirements
17
+ - **Performance-oriented**: Focused on high-throughput, low-latency scenarios that Karafka specializes in
18
+ - **Framework-integrated**: Designed to work seamlessly with Karafka's architecture and features
22
19
 
23
- ## Table of content
20
+ These modifications are not suitable for the upstream rdkafka-ruby library because they are either too specific to Karafka's use cases or might introduce breaking changes for other users of rdkafka-ruby.
24
21
 
25
- - [Project Scope](#project-scope)
26
- - [Installation](#installation)
27
- - [Usage](#usage)
28
- * [Consuming Messages](#consuming-messages)
29
- * [Producing Messages](#producing-messages)
30
- - [Higher Level Libraries](#higher-level-libraries)
31
- * [Message Processing Frameworks](#message-processing-frameworks)
32
- * [Message Publishing Libraries](#message-publishing-libraries)
33
- - [Forking](#forking)
34
- - [Development](#development)
35
- - [Example](#example)
36
- - [Versions](#versions)
22
+ ## Maintenance and Synchronization
37
23
 
38
- ## Project Scope
24
+ This fork is actively maintained and kept in sync with the upstream rdkafka-ruby repository as much as possible. We:
39
25
 
40
- While rdkafka-ruby aims to simplify the use of librdkafka in Ruby applications, it's important to understand the limitations of this library:
26
+ - **Regularly merge** upstream changes from rdkafka-ruby
27
+ - **Maintain compatibility** with the rdkafka-ruby API wherever possible
28
+ - **Apply minimal patches** to avoid diverging significantly from upstream
29
+ - **Merge back generic improvements** from karafka-rdkafka to rdkafka-ruby when they benefit the broader community
30
+ - **Test thoroughly** to ensure stability within the Karafka ecosystem
41
31
 
42
- - **No Complex Producers/Consumers**: This library does not intend to offer complex producers or consumers. The aim is to stick closely to the functionalities provided by librdkafka itself.
32
+ ## Long-term Plan
43
33
 
44
- - **Focus on librdkafka Capabilities**: Features that can be achieved directly in Ruby, without specific needs from librdkafka, are outside the scope of this library.
34
+ Our long-term goal is to work with the rdkafka-ruby maintainers to eventually merge the beneficial changes back upstream. This would allow us to:
45
35
 
46
- - **Existing High-Level Functionalities**: Certain high-level functionalities like producer metadata cache and simple consumer are already part of the library. Although they fall slightly outside the primary goal, they will remain part of the contract, given their existing usage.
36
+ - Reduce maintenance overhead
37
+ - Benefit the broader Ruby Kafka community
38
+ - Simplify the Karafka ecosystem dependencies
47
39
 
40
+ However, until such integration is possible, this fork ensures that Karafka users get the best possible performance and reliability.
48
41
 
49
- ## Installation
42
+ ### If You're Using Standalone rdkafka
50
43
 
51
- When installed, this gem downloads and compiles librdkafka. If you have any problems installing the gem, please open an issue.
44
+ You should use the [original rdkafka-ruby gem](https://github.com/karafka/rdkafka-ruby) for general Kafka client needs. This fork is specifically designed for Karafka and may not be suitable for other use cases.
52
45
 
53
- ## Usage
46
+ ### Reporting Issues
54
47
 
55
- Please see the [documentation](https://karafka.io/docs/code/rdkafka-ruby/) for full details on how to use this gem. Below are two quick examples.
48
+ For issues related to this fork, please report them in the [rdkafka-ruby repository](https://github.com/karafka/rdkafka-ruby/issues) rather than here. This helps us:
56
49
 
57
- Unless you are seeking specific low-level capabilities, we **strongly** recommend using [Karafka](https://github.com/karafka/karafka) and [WaterDrop](https://github.com/karafka/waterdrop) when working with Kafka. These are higher-level libraries also maintained by us based on rdkafka-ruby.
50
+ - Maintain a single place for issue tracking
51
+ - Ensure upstream compatibility
52
+ - Provide better support for all users
58
53
 
59
- ### Consuming Messages
54
+ ### Contributing
60
55
 
61
- Subscribe to a topic and get messages. Kafka will automatically spread
62
- the available partitions over consumers with the same group id.
56
+ Contributions should generally be made to the upstream [rdkafka-ruby repository](https://github.com/karafka/rdkafka-ruby). Changes to this fork are only made when:
63
57
 
64
- ```ruby
65
- config = {
66
- :"bootstrap.servers" => "localhost:9092",
67
- :"group.id" => "ruby-test"
68
- }
69
- consumer = Rdkafka::Config.new(config).consumer
70
- consumer.subscribe("ruby-test-topic")
71
-
72
- consumer.each do |message|
73
- puts "Message received: #{message}"
74
- end
75
- ```
76
-
77
- ### Producing Messages
78
-
79
- Produce several messages, put the delivery handles in an array, and
80
- wait for them before exiting. This way the messages will be batched and
81
- efficiently sent to Kafka.
82
-
83
- ```ruby
84
- config = {:"bootstrap.servers" => "localhost:9092"}
85
- producer = Rdkafka::Config.new(config).producer
86
- delivery_handles = []
87
-
88
- 100.times do |i|
89
- puts "Producing message #{i}"
90
- delivery_handles << producer.produce(
91
- topic: "ruby-test-topic",
92
- payload: "Payload #{i}",
93
- key: "Key #{i}"
94
- )
95
- end
96
-
97
- delivery_handles.each(&:wait)
98
- ```
99
-
100
- Note that creating a producer consumes some resources that will not be released until it `#close` is explicitly called, so be sure to call `Config#producer` only as necessary.
101
-
102
- ## Higher Level Libraries
103
-
104
- Currently, there are two actively developed frameworks based on `rdkafka-ruby`, that provide higher-level API that can be used to work with Kafka messages and one library for publishing messages.
105
-
106
- ### Message Processing Frameworks
107
-
108
- * [Karafka](https://github.com/karafka/karafka) - Ruby and Rails efficient Kafka processing framework.
109
- * [Racecar](https://github.com/zendesk/racecar) - A simple framework for Kafka consumers in Ruby
110
-
111
- ### Message Publishing Libraries
112
-
113
- * [WaterDrop](https://github.com/karafka/waterdrop) – Standalone Karafka library for producing Kafka messages.
114
-
115
- ## Forking
116
-
117
- When working with `rdkafka-ruby`, it's essential to know that the underlying `librdkafka` library does not support fork-safe operations, even though it is thread-safe. Forking a process after initializing librdkafka clients can lead to unpredictable behavior due to inherited file descriptors and memory states. This limitation requires careful handling, especially in Ruby applications that rely on forking.
118
-
119
- To address this, it's highly recommended to:
120
-
121
- - Never initialize any `rdkafka-ruby` producers or consumers before forking to avoid state corruption.
122
- - Before forking, always close any open producers or consumers if you've opened any.
123
- - Use high-level libraries like [WaterDrop](https://github.com/karafka/waterdrop) and [Karafka](https://github.com/karafka/karafka/), which provide abstractions for handling librdkafka's intricacies.
124
-
125
- ## Development
126
-
127
- Contributors are encouraged to focus on enhancements that align with the core goal of the library. We appreciate contributions but will likely not accept pull requests for features that:
128
-
129
- - Implement functionalities that can achieved using standard Ruby capabilities without changes to the underlying rdkafka-ruby bindings.
130
- - Deviate significantly from the primary aim of providing librdkafka bindings with Ruby-friendly interfaces.
131
-
132
- A Docker Compose file is included to run Kafka. To run that:
133
-
134
- ```
135
- docker-compose up
136
- ```
137
-
138
- Run `bundle` and `cd ext && bundle exec rake && cd ..` to download and compile `librdkafka`.
139
-
140
- You can then run `bundle exec rspec` to run the tests. To see rdkafka debug output:
141
-
142
- ```
143
- DEBUG_PRODUCER=true bundle exec rspec
144
- DEBUG_CONSUMER=true bundle exec rspec
145
- ```
146
-
147
- After running the tests, you can bring the cluster down to start with a clean slate:
148
-
149
- ```
150
- docker-compose down
151
- ```
152
-
153
- ## Example
154
-
155
- To see everything working, run these in separate tabs:
156
-
157
- ```
158
- bundle exec rake consume_messages
159
- bundle exec rake produce_messages
160
- ```
58
+ - They are specific to Karafka's requirements
59
+ - They cannot be generalized for upstream inclusion
60
+ - They are temporary while working on upstream integration
161
61
 
162
62
  ## Versions
163
63
 
164
64
  | rdkafka-ruby | librdkafka | patches |
165
65
  |-|-|-|
166
- | 0.21.x (Unreleased) | 2.11.0 (2025-07-03) | yes |
66
+ | 0.22.x (Unreleased) | 2.11.1 (2025-08-18) | yes |
67
+ | 0.21.x (2025-08-18) | 2.11.0 (2025-07-03) | yes |
167
68
  | 0.20.x (2025-07-17) | 2.8.0 (2025-01-07) | yes |
168
69
  | 0.19.x (2025-01-20) | 2.8.0 (2025-01-07) | yes |
169
70
  | 0.18.0 (2024-11-26) | 2.6.1 (2024-11-18) | yes |
@@ -0,0 +1,35 @@
1
+ services:
2
+ kafka:
3
+ container_name: kafka
4
+ image: confluentinc/cp-kafka:8.0.0
5
+ ports:
6
+ - 9092:9092 # Support PLAINTEXT so we can run one docker setup for SSL and PLAINTEXT
7
+ - 9093:9093
8
+ volumes:
9
+ - ./ssl:/etc/kafka/secrets
10
+ environment:
11
+ CLUSTER_ID: kafka-docker-cluster-1
12
+ KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
13
+ KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
14
+ KAFKA_PROCESS_ROLES: broker,controller
15
+ KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
16
+ KAFKA_LISTENERS: PLAINTEXT://:9092,SSL://:9093,CONTROLLER://:9094
17
+ KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL
18
+ KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092,SSL://127.0.0.1:9093
19
+ KAFKA_BROKER_ID: 1
20
+ KAFKA_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9094
21
+ ALLOW_PLAINTEXT_LISTENER: 'yes'
22
+ KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
23
+ KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
24
+ KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
25
+ KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
26
+ KAFKA_AUTHORIZER_CLASS_NAME: org.apache.kafka.metadata.authorizer.StandardAuthorizer
27
+
28
+ # SSL Configuration
29
+ KAFKA_SSL_KEYSTORE_FILENAME: kafka.server.keystore.jks
30
+ KAFKA_SSL_KEYSTORE_CREDENTIALS: kafka_keystore_creds
31
+ KAFKA_SSL_KEY_CREDENTIALS: kafka_ssl_key_creds
32
+ KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.server.truststore.jks
33
+ KAFKA_SSL_TRUSTSTORE_CREDENTIALS: kafka_truststore_creds
34
+ KAFKA_SSL_CLIENT_AUTH: none
35
+ KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM: ""
data/ext/librdkafka.dylib CHANGED
Binary file
@@ -13,17 +13,31 @@ Gem::Specification.new do |gem|
13
13
  gem.name = 'karafka-rdkafka'
14
14
  gem.require_paths = ['lib']
15
15
  gem.version = Rdkafka::VERSION
16
- gem.required_ruby_version = '>= 3.1'
16
+ gem.required_ruby_version = '>= 3.2'
17
+
18
+ files = `git ls-files`.split($\)
19
+ files = files.reject do |file|
20
+ next true if file.start_with?('.')
21
+ next true if file.start_with?('spec/')
22
+ next true if file.start_with?('ext/README.md')
23
+
24
+ false
25
+ end
17
26
 
18
27
  if ENV['RUBY_PLATFORM']
19
28
  gem.platform = ENV['RUBY_PLATFORM']
20
- gem.files = `git ls-files`.split($\)
21
29
 
22
30
  # Do not include the source code for librdkafka as it should be precompiled already per
23
31
  # platform. Same applies to any possible patches.
24
- gem.files = gem.files.reject do |file|
25
- file.match?(%r{^dist/librdkafka-.*\.tar\.gz$}) ||
26
- file.match?(%r{^dist/patches/})
32
+ # Do not include github actions details in RubyGems releases
33
+ gem.files = files.reject do |file|
34
+ next true if file.start_with?('dist/')
35
+ next true if file.start_with?('ext/build_')
36
+ next true if file.start_with?('ext/ci_')
37
+ next true if file.start_with?('ext/Rakefile')
38
+ next true if file.start_with?('ext/generate-')
39
+
40
+ false
27
41
  end
28
42
 
29
43
  # Add the compiled extensions that exist (not in git)
@@ -36,11 +50,25 @@ Gem::Specification.new do |gem|
36
50
  end
37
51
  else
38
52
  gem.platform = Gem::Platform::RUBY
39
- gem.files = `git ls-files`.split($\)
53
+
54
+ # Do not include code used for building native extensions
55
+ # Do not include github actions details in RubyGems releases
56
+ gem.files = files.reject do |file|
57
+ next true if file.start_with?('ext/build_')
58
+ next true if file.start_with?('ext/ci_')
59
+ next true if file.start_with?('ext/generate-')
60
+ next false unless file.start_with?('dist/')
61
+ next false if file.start_with?('dist/patches')
62
+ next false if file.start_with?('dist/librdkafka-')
63
+
64
+ true
65
+ end
66
+
40
67
  gem.extensions = %w(ext/Rakefile)
41
68
  end
42
69
 
43
70
  gem.add_dependency 'ffi', '~> 1.15'
71
+ gem.add_dependency 'json', '> 2.0'
44
72
  gem.add_dependency 'logger'
45
73
  gem.add_dependency 'mini_portile2', '~> 2.6'
46
74
  gem.add_dependency 'rake', '> 12'
@@ -50,6 +78,7 @@ Gem::Specification.new do |gem|
50
78
  gem.add_development_dependency 'rspec', '~> 3.5'
51
79
  gem.add_development_dependency 'rake'
52
80
  gem.add_development_dependency 'simplecov'
81
+ gem.add_development_dependency 'warning'
53
82
 
54
83
  gem.metadata = {
55
84
  'funding_uri' => 'https://karafka.io/#become-pro',
@@ -160,7 +160,6 @@ module Rdkafka
160
160
  attach_function :rd_kafka_error_is_retriable, [:pointer], :int
161
161
  attach_function :rd_kafka_error_txn_requires_abort, [:pointer], :int
162
162
  attach_function :rd_kafka_error_destroy, [:pointer], :void
163
- attach_function :rd_kafka_error_code, [:pointer], :int
164
163
  attach_function :rd_kafka_get_err_descs, [:pointer, :pointer], :void
165
164
 
166
165
  # Configuration
@@ -344,7 +344,7 @@ module Rdkafka
344
344
  topic_out = {}
345
345
  partitions.each do |p|
346
346
  next if p.offset.nil?
347
- _, high = query_watermark_offsets(
347
+ _low, high = query_watermark_offsets(
348
348
  topic,
349
349
  p.partition,
350
350
  watermark_timeout_ms
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rdkafka
4
- VERSION = "0.21.0.rc1"
5
- LIBRDKAFKA_VERSION = "2.11.0"
6
- LIBRDKAFKA_SOURCE_SHA256 = "592a823dc7c09ad4ded1bc8f700da6d4e0c88ffaf267815c6f25e7450b9395ca"
4
+ VERSION = "0.22.0.rc1"
5
+ LIBRDKAFKA_VERSION = "2.11.1"
6
+ LIBRDKAFKA_SOURCE_SHA256 = "a2c87186b081e2705bb7d5338d5a01bc88d43273619b372ccb7bb0d264d0ca9f"
7
7
  end
data/renovate.json CHANGED
@@ -19,7 +19,7 @@
19
19
  {
20
20
  "customType": "regex",
21
21
  "managerFilePatterns": [
22
- "/^ext/build_common\\.sh$/"
22
+ "/ext/build_common.sh/"
23
23
  ],
24
24
  "matchStrings": [
25
25
  "readonly OPENSSL_VERSION=\"(?<currentValue>.*)\""
@@ -31,7 +31,7 @@
31
31
  {
32
32
  "customType": "regex",
33
33
  "managerFilePatterns": [
34
- "/^ext/build_common\\.sh$/"
34
+ "/ext/build_common.sh/"
35
35
  ],
36
36
  "matchStrings": [
37
37
  "readonly CYRUS_SASL_VERSION=\"(?<currentValue>.*)\""
@@ -43,7 +43,7 @@
43
43
  {
44
44
  "customType": "regex",
45
45
  "managerFilePatterns": [
46
- "/^ext/build_common\\.sh$/"
46
+ "/ext/build_common.sh/"
47
47
  ],
48
48
  "matchStrings": [
49
49
  "readonly ZLIB_VERSION=\"(?<currentValue>.*)\""
@@ -55,7 +55,7 @@
55
55
  {
56
56
  "customType": "regex",
57
57
  "managerFilePatterns": [
58
- "/^ext/build_common\\.sh$/"
58
+ "/ext/build_common.sh/"
59
59
  ],
60
60
  "matchStrings": [
61
61
  "readonly ZSTD_VERSION=\"(?<currentValue>.*)\""
@@ -67,7 +67,7 @@
67
67
  {
68
68
  "customType": "regex",
69
69
  "managerFilePatterns": [
70
- "/^ext/build_common\\.sh$/"
70
+ "/ext/build_common.sh/"
71
71
  ],
72
72
  "matchStrings": [
73
73
  "readonly KRB5_VERSION=\"(?<currentValue>.*)\""
@@ -75,18 +75,6 @@
75
75
  "depNameTemplate": "krb5/krb5",
76
76
  "datasourceTemplate": "github-releases",
77
77
  "extractVersionTemplate": "^krb5-(?<version>.*)$"
78
- },
79
- {
80
- "customType": "regex",
81
- "managerFilePatterns": [
82
- "/^ext/build_common\\.sh$/"
83
- ],
84
- "matchStrings": [
85
- "readonly LIBRDKAFKA_VERSION=\"(?<currentValue>.*)\""
86
- ],
87
- "depNameTemplate": "confluentinc/librdkafka",
88
- "datasourceTemplate": "github-releases",
89
- "extractVersionTemplate": "^v(?<version>.*)$"
90
78
  }
91
79
  ]
92
80
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karafka-rdkafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0.rc1
4
+ version: 0.22.0.rc1
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - Thijs Cadier
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: logger
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,20 @@ dependencies:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: warning
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
139
167
  description: Modern Kafka client library for Ruby based on librdkafka
140
168
  email:
141
169
  - contact@karafka.io
@@ -143,33 +171,13 @@ executables: []
143
171
  extensions: []
144
172
  extra_rdoc_files: []
145
173
  files:
146
- - ".github/CODEOWNERS"
147
- - ".github/FUNDING.yml"
148
- - ".github/workflows/ci_linux_x86_64_gnu.yml"
149
- - ".github/workflows/ci_linux_x86_64_musl.yml"
150
- - ".github/workflows/ci_macos_arm64.yml"
151
- - ".github/workflows/push_linux_x86_64_gnu.yml"
152
- - ".github/workflows/push_linux_x86_64_musl.yml"
153
- - ".github/workflows/push_macos_arm64.yml"
154
- - ".github/workflows/push_ruby.yml"
155
- - ".github/workflows/verify-action-pins.yml"
156
- - ".gitignore"
157
- - ".rspec"
158
- - ".ruby-gemset"
159
- - ".ruby-version"
160
- - ".yardopts"
161
174
  - CHANGELOG.md
162
175
  - Gemfile
163
176
  - MIT-LICENSE
164
177
  - README.md
165
178
  - Rakefile
179
+ - docker-compose-ssl.yml
166
180
  - docker-compose.yml
167
- - ext/README.md
168
- - ext/Rakefile
169
- - ext/build_common.sh
170
- - ext/build_linux_x86_64_gnu.sh
171
- - ext/build_linux_x86_64_musl.sh
172
- - ext/build_macos_arm64.sh
173
181
  - ext/librdkafka.dylib
174
182
  - karafka-rdkafka.gemspec
175
183
  - lib/rdkafka.rb
@@ -215,34 +223,6 @@ files:
215
223
  - lib/rdkafka/producer/partitions_count_cache.rb
216
224
  - lib/rdkafka/version.rb
217
225
  - renovate.json
218
- - spec/rdkafka/abstract_handle_spec.rb
219
- - spec/rdkafka/admin/create_acl_handle_spec.rb
220
- - spec/rdkafka/admin/create_acl_report_spec.rb
221
- - spec/rdkafka/admin/create_topic_handle_spec.rb
222
- - spec/rdkafka/admin/create_topic_report_spec.rb
223
- - spec/rdkafka/admin/delete_acl_handle_spec.rb
224
- - spec/rdkafka/admin/delete_acl_report_spec.rb
225
- - spec/rdkafka/admin/delete_topic_handle_spec.rb
226
- - spec/rdkafka/admin/delete_topic_report_spec.rb
227
- - spec/rdkafka/admin/describe_acl_handle_spec.rb
228
- - spec/rdkafka/admin/describe_acl_report_spec.rb
229
- - spec/rdkafka/admin_spec.rb
230
- - spec/rdkafka/bindings_spec.rb
231
- - spec/rdkafka/callbacks_spec.rb
232
- - spec/rdkafka/config_spec.rb
233
- - spec/rdkafka/consumer/headers_spec.rb
234
- - spec/rdkafka/consumer/message_spec.rb
235
- - spec/rdkafka/consumer/partition_spec.rb
236
- - spec/rdkafka/consumer/topic_partition_list_spec.rb
237
- - spec/rdkafka/consumer_spec.rb
238
- - spec/rdkafka/error_spec.rb
239
- - spec/rdkafka/metadata_spec.rb
240
- - spec/rdkafka/native_kafka_spec.rb
241
- - spec/rdkafka/producer/delivery_handle_spec.rb
242
- - spec/rdkafka/producer/delivery_report_spec.rb
243
- - spec/rdkafka/producer/partitions_count_cache_spec.rb
244
- - spec/rdkafka/producer_spec.rb
245
- - spec/spec_helper.rb
246
226
  licenses:
247
227
  - MIT
248
228
  metadata:
@@ -260,14 +240,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
260
240
  requirements:
261
241
  - - ">="
262
242
  - !ruby/object:Gem::Version
263
- version: '3.1'
243
+ version: '3.2'
264
244
  required_rubygems_version: !ruby/object:Gem::Requirement
265
245
  requirements:
266
246
  - - ">="
267
247
  - !ruby/object:Gem::Version
268
248
  version: '0'
269
249
  requirements: []
270
- rubygems_version: 3.6.7
250
+ rubygems_version: 3.6.9
271
251
  specification_version: 4
272
252
  summary: The rdkafka gem is a modern Kafka client library for Ruby based on librdkafka.
273
253
  It wraps the production-ready C client using the ffi gem and targets Kafka 1.0+
data/.github/CODEOWNERS DELETED
@@ -1,3 +0,0 @@
1
- /.github @mensfeld
2
- /.github/workflows/ @mensfeld
3
- /.github/actions/ @mensfeld
data/.github/FUNDING.yml DELETED
@@ -1 +0,0 @@
1
- custom: ['https://karafka.io/#become-pro']