karafka-rdkafka 0.23.0.beta1-x86_64-linux-gnu → 0.23.0.beta2-x86_64-linux-gnu
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/CHANGELOG.md +8 -6
 - data/README.md +1 -1
 - data/ext/librdkafka.so +0 -0
 - data/karafka-rdkafka.gemspec +1 -1
 - data/lib/rdkafka/helpers/oauth.rb +36 -9
 - data/lib/rdkafka/version.rb +3 -3
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 55f4b9985ace9673ecbf88ee9432bec2a7d925cbd23871af4a90abd5f0f6607f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 21da9178451190689149455321fcf3ae806a1aef784f1ded27a763098e349dbb
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5ba5e94d82a59fd2ec88374a726e6cfeddb2fbd41f3d21595058438eca6dea13ecf6036875587e89e36f45a1d7cbb457ba1ac8d12e30357cc40030f523364bff
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b55c117dead4f44b68797bd766c1dbeeffab9f81c8b29daab84ac0d48eb2faca218da63026603264db43ca844262cec12680e6df6a5b7269e7f9149258125ec9
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,7 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Rdkafka Changelog
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            ## 0.23.0 (Unreleased)
         
     | 
| 
       4 
     | 
    
         
            -
            - [Enhancement] Bump librdkafka to 2.12. 
     | 
| 
      
 4 
     | 
    
         
            +
            - [Enhancement] Bump librdkafka to 2.12.1.
         
     | 
| 
      
 5 
     | 
    
         
            +
            - [Enhancement] Force lock FFI to 1.17.1 or higher to include critical bug fixes around GCC, write barriers, and thread restarts for forks.
         
     | 
| 
      
 6 
     | 
    
         
            +
            - [Fix] Fix for Core dump when providing extensions to oauthbearer_set_token (dssjoblom)
         
     | 
| 
       5 
7 
     | 
    
         | 
| 
       6 
8 
     | 
    
         
             
            ## 0.22.2 (2025-10-09)
         
     | 
| 
       7 
9 
     | 
    
         
             
            - [Fix] Fix Github Action Ruby reference preventing non-compiled releases.
         
     | 
| 
         @@ -11,7 +13,7 @@ 
     | 
|
| 
       11 
13 
     | 
    
         
             
            - [Enhancement] Optimize producer header processing with early returns and efficient array operations (69% faster for nil headers, 41% faster for empty headers, 12-32% faster when headers are present, with larger improvements for complex header scenarios).
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
            ## 0.22.0 (2025-09-26)
         
     | 
| 
       14 
     | 
    
         
            -
            - **[ 
     | 
| 
      
 16 
     | 
    
         
            +
            - **[EOL]** Drop support for Ruby 3.1 to move forward with the fiber scheduler work.
         
     | 
| 
       15 
17 
     | 
    
         
             
            - [Enhancement] Bump librdkafka to 2.11.1.
         
     | 
| 
       16 
18 
     | 
    
         
             
            - [Enhancement] Improve sigstore attestation for precompiled releases.
         
     | 
| 
       17 
19 
     | 
    
         
             
            - [Fix] Fix incorrectly set default SSL certs dir.
         
     | 
| 
         @@ -71,7 +73,7 @@ 
     | 
|
| 
       71 
73 
     | 
    
         
             
            - [Fix] Do not run `Rdkafka::Bindings.rd_kafka_global_init` on require to prevent some of macos versions from hanging on Puma fork.
         
     | 
| 
       72 
74 
     | 
    
         | 
| 
       73 
75 
     | 
    
         
             
            ## 0.18.0 (2024-11-26)
         
     | 
| 
       74 
     | 
    
         
            -
            - **[ 
     | 
| 
      
 76 
     | 
    
         
            +
            - **[EOL]** Drop Ruby 3.0 support
         
     | 
| 
       75 
77 
     | 
    
         
             
            - [Enhancement] Bump librdkafka to 2.6.1
         
     | 
| 
       76 
78 
     | 
    
         
             
            - [Enhancement] Use default oauth callback if none is passed (bachmanity1)
         
     | 
| 
       77 
79 
     | 
    
         
             
            - [Enhancement] Expose `rd_kafka_global_init` to mitigate macos forking issues.
         
     | 
| 
         @@ -112,7 +114,7 @@ 
     | 
|
| 
       112 
114 
     | 
    
         
             
            - **[Breaking]** `HashWithSymbolKeysTreatedLikeStrings` has been removed so headers are regular hashes with string keys.
         
     | 
| 
       113 
115 
     | 
    
         
             
            - [Enhancement] Bump librdkafka to 2.4.0
         
     | 
| 
       114 
116 
     | 
    
         
             
            - [Enhancement] Save two objects on message produced and lower CPU usage on message produced with small improvements.
         
     | 
| 
       115 
     | 
    
         
            -
            - [ 
     | 
| 
      
 117 
     | 
    
         
            +
            - **[EOL]** Remove support for Ruby 2.7. Supporting it was a bug since rest of the karafka ecosystem no longer supports it.
         
     | 
| 
       116 
118 
     | 
    
         | 
| 
       117 
119 
     | 
    
         
             
            ## 0.15.2 (2024-07-10)
         
     | 
| 
       118 
120 
     | 
    
         
             
            - [Fix] Switch to local release of librdkafka to mitigate its unavailability.
         
     | 
| 
         @@ -193,7 +195,7 @@ 
     | 
|
| 
       193 
195 
     | 
    
         
             
            - [Enhancement] Get consumer position (thijsc & mensfeld)
         
     | 
| 
       194 
196 
     | 
    
         | 
| 
       195 
197 
     | 
    
         
             
            ## 0.13.7 (2023-10-31)
         
     | 
| 
       196 
     | 
    
         
            -
            - [ 
     | 
| 
      
 198 
     | 
    
         
            +
            - **[EOL]** Drop support for Ruby 2.6 due to incompatibilities in usage of `ObjectSpace::WeakMap`
         
     | 
| 
       197 
199 
     | 
    
         
             
            - [Fix] Fix dangling Opaque references.
         
     | 
| 
       198 
200 
     | 
    
         | 
| 
       199 
201 
     | 
    
         
             
            ## 0.13.6 (2023-10-17)
         
     | 
| 
         @@ -260,7 +262,7 @@ 
     | 
|
| 
       260 
262 
     | 
    
         | 
| 
       261 
263 
     | 
    
         
             
            ## 0.11.0 (2021-11-17)
         
     | 
| 
       262 
264 
     | 
    
         
             
            - Upgrade librdkafka to 1.8.2
         
     | 
| 
       263 
     | 
    
         
            -
            - Bump supported minimum Ruby version to 2.6
         
     | 
| 
      
 265 
     | 
    
         
            +
            - **[EOL]** Bump supported minimum Ruby version to 2.6
         
     | 
| 
       264 
266 
     | 
    
         
             
            - Better homebrew path detection
         
     | 
| 
       265 
267 
     | 
    
         | 
| 
       266 
268 
     | 
    
         
             
            ## 0.10.0 (2021-09-07)
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -63,7 +63,7 @@ Contributions should generally be made to the upstream [rdkafka-ruby repository] 
     | 
|
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
            | rdkafka-ruby | librdkafka | patches |
         
     | 
| 
       65 
65 
     | 
    
         
             
            |-|-|-|
         
     | 
| 
       66 
     | 
    
         
            -
            | 0.23.x (Unreleased) | 2.12. 
     | 
| 
      
 66 
     | 
    
         
            +
            | 0.23.x (Unreleased) | 2.12.1 (2025-10-16)  | yes |
         
     | 
| 
       67 
67 
     | 
    
         
             
            | 0.22.x (2025-09-26) | 2.11.1 (2025-08-18)  | yes |
         
     | 
| 
       68 
68 
     | 
    
         
             
            | 0.21.x (2025-08-18) | 2.11.0 (2025-07-03)  | yes |
         
     | 
| 
       69 
69 
     | 
    
         
             
            | 0.20.x (2025-07-17) | 2.8.0  (2025-01-07)  | yes |
         
     | 
    
        data/ext/librdkafka.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/karafka-rdkafka.gemspec
    CHANGED
    
    | 
         @@ -67,7 +67,7 @@ Gem::Specification.new do |gem| 
     | 
|
| 
       67 
67 
     | 
    
         
             
                gem.extensions = %w(ext/Rakefile)
         
     | 
| 
       68 
68 
     | 
    
         
             
              end
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
              gem.add_dependency 'ffi', '~> 1. 
     | 
| 
      
 70 
     | 
    
         
            +
              gem.add_dependency 'ffi', '~> 1.17.1'
         
     | 
| 
       71 
71 
     | 
    
         
             
              gem.add_dependency 'json', '> 2.0'
         
     | 
| 
       72 
72 
     | 
    
         
             
              gem.add_dependency 'logger'
         
     | 
| 
       73 
73 
     | 
    
         
             
              gem.add_dependency 'mini_portile2', '~> 2.6'
         
     | 
| 
         @@ -12,12 +12,18 @@ module Rdkafka 
     | 
|
| 
       12 
12 
     | 
    
         
             
                  # @return [Integer] 0 on success
         
     | 
| 
       13 
13 
     | 
    
         
             
                  def oauthbearer_set_token(token:, lifetime_ms:, principal_name:, extensions: nil)
         
     | 
| 
       14 
14 
     | 
    
         
             
                    error_buffer = FFI::MemoryPointer.from_string(" " * 256)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    extensions_ptr, extensions_str_ptrs = map_extensions(extensions)
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
                     
     | 
| 
       17 
     | 
    
         
            -
                       
     | 
| 
       18 
     | 
    
         
            -
                         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 18 
     | 
    
         
            +
                      response = @native_kafka.with_inner do |inner|
         
     | 
| 
      
 19 
     | 
    
         
            +
                        Rdkafka::Bindings.rd_kafka_oauthbearer_set_token(
         
     | 
| 
      
 20 
     | 
    
         
            +
                          inner, token, lifetime_ms, principal_name,
         
     | 
| 
      
 21 
     | 
    
         
            +
                          extensions_ptr, extension_size(extensions), error_buffer, 256
         
     | 
| 
      
 22 
     | 
    
         
            +
                        )
         
     | 
| 
      
 23 
     | 
    
         
            +
                      end
         
     | 
| 
      
 24 
     | 
    
         
            +
                    ensure
         
     | 
| 
      
 25 
     | 
    
         
            +
                      extensions_str_ptrs&.each { |ptr| ptr.free }
         
     | 
| 
      
 26 
     | 
    
         
            +
                      extensions_ptr&.free
         
     | 
| 
       21 
27 
     | 
    
         
             
                    end
         
     | 
| 
       22 
28 
     | 
    
         | 
| 
       23 
29 
     | 
    
         
             
                    return response if response.zero?
         
     | 
| 
         @@ -41,10 +47,31 @@ module Rdkafka 
     | 
|
| 
       41 
47 
     | 
    
         | 
| 
       42 
48 
     | 
    
         
             
                  private
         
     | 
| 
       43 
49 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
                  #  
     | 
| 
       45 
     | 
    
         
            -
                   
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                     
     | 
| 
      
 50 
     | 
    
         
            +
                  # Convert extensions hash to FFI::MemoryPointer (const char **).
         
     | 
| 
      
 51 
     | 
    
         
            +
                  # Note: the returned pointers must be freed manually (autorelease = false).
         
     | 
| 
      
 52 
     | 
    
         
            +
                  def map_extensions(extensions)
         
     | 
| 
      
 53 
     | 
    
         
            +
                    return [nil, nil] if extensions.nil? || extensions.empty?
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                    # https://github.com/confluentinc/librdkafka/blob/master/src/rdkafka_sasl_oauthbearer.c#L327-L347
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                    # The method argument is const char **
         
     | 
| 
      
 58 
     | 
    
         
            +
                    array_ptr = FFI::MemoryPointer.new(:pointer, extension_size(extensions))
         
     | 
| 
      
 59 
     | 
    
         
            +
                    array_ptr.autorelease = false
         
     | 
| 
      
 60 
     | 
    
         
            +
                    str_ptrs = []
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                    # Element i is the key, i + 1 is the value.
         
     | 
| 
      
 63 
     | 
    
         
            +
                    extensions.each_with_index do |(k, v), i|
         
     | 
| 
      
 64 
     | 
    
         
            +
                      k_ptr = FFI::MemoryPointer.from_string(k.to_s)
         
     | 
| 
      
 65 
     | 
    
         
            +
                      k_ptr.autorelease = false
         
     | 
| 
      
 66 
     | 
    
         
            +
                      str_ptrs << k_ptr
         
     | 
| 
      
 67 
     | 
    
         
            +
                      v_ptr = FFI::MemoryPointer.from_string(v.to_s)
         
     | 
| 
      
 68 
     | 
    
         
            +
                      v_ptr.autorelease = false
         
     | 
| 
      
 69 
     | 
    
         
            +
                      str_ptrs << v_ptr
         
     | 
| 
      
 70 
     | 
    
         
            +
                      array_ptr[i * 2].put_pointer(0, k_ptr)
         
     | 
| 
      
 71 
     | 
    
         
            +
                      array_ptr[i * 2 + 1].put_pointer(0, v_ptr)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                    [array_ptr, str_ptrs]
         
     | 
| 
       48 
75 
     | 
    
         
             
                  end
         
     | 
| 
       49 
76 
     | 
    
         | 
| 
       50 
77 
     | 
    
         
             
                  # extension_size is the number of keys + values which should be a non-negative even number
         
     | 
    
        data/lib/rdkafka/version.rb
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            module Rdkafka
         
     | 
| 
       4 
     | 
    
         
            -
              VERSION = "0.23.0. 
     | 
| 
       5 
     | 
    
         
            -
              LIBRDKAFKA_VERSION = "2.12. 
     | 
| 
       6 
     | 
    
         
            -
              LIBRDKAFKA_SOURCE_SHA256 = " 
     | 
| 
      
 4 
     | 
    
         
            +
              VERSION = "0.23.0.beta2"
         
     | 
| 
      
 5 
     | 
    
         
            +
              LIBRDKAFKA_VERSION = "2.12.1"
         
     | 
| 
      
 6 
     | 
    
         
            +
              LIBRDKAFKA_SOURCE_SHA256 = "ec103fa05cb0f251e375f6ea0b6112cfc9d0acd977dc5b69fdc54242ba38a16f"
         
     | 
| 
       7 
7 
     | 
    
         
             
            end
         
     | 
    
        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.23.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.23.0.beta2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x86_64-linux-gnu
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Thijs Cadier
         
     | 
| 
         @@ -16,14 +16,14 @@ dependencies: 
     | 
|
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version:  
     | 
| 
      
 19 
     | 
    
         
            +
                    version: 1.17.1
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version:  
     | 
| 
      
 26 
     | 
    
         
            +
                    version: 1.17.1
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              name: json
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |