karafka-rdkafka 0.21.0.rc2-aarch64-linux-gnu → 0.22.0.rc1-aarch64-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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -1
  3. data/README.md +2 -1
  4. data/ext/librdkafka.so +0 -0
  5. data/karafka-rdkafka.gemspec +33 -6
  6. data/lib/rdkafka/version.rb +3 -3
  7. data/renovate.json +5 -17
  8. metadata +2 -67
  9. data/.github/CODEOWNERS +0 -3
  10. data/.github/FUNDING.yml +0 -1
  11. data/.github/workflows/ci_linux_alpine_x86_64_musl.yml +0 -197
  12. data/.github/workflows/ci_linux_alpine_x86_64_musl_complementary.yml +0 -264
  13. data/.github/workflows/ci_linux_debian_x86_64_gnu.yml +0 -271
  14. data/.github/workflows/ci_linux_debian_x86_64_gnu_complementary.yml +0 -334
  15. data/.github/workflows/ci_linux_ubuntu_aarch64_gnu.yml +0 -271
  16. data/.github/workflows/ci_linux_ubuntu_aarch64_gnu_complementary.yml +0 -295
  17. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu.yml +0 -281
  18. data/.github/workflows/ci_linux_ubuntu_x86_64_gnu_complementary.yml +0 -294
  19. data/.github/workflows/ci_macos_arm64.yml +0 -284
  20. data/.github/workflows/push_linux_aarch64_gnu.yml +0 -65
  21. data/.github/workflows/push_linux_x86_64_gnu.yml +0 -65
  22. data/.github/workflows/push_linux_x86_64_musl.yml +0 -79
  23. data/.github/workflows/push_macos_arm64.yml +0 -54
  24. data/.github/workflows/push_ruby.yml +0 -37
  25. data/.github/workflows/trigger-wiki-refresh.yml +0 -30
  26. data/.github/workflows/verify-action-pins.yml +0 -16
  27. data/.gitignore +0 -16
  28. data/.rspec +0 -3
  29. data/.ruby-gemset +0 -1
  30. data/.ruby-version +0 -1
  31. data/.yardopts +0 -2
  32. data/dist/cyrus-sasl-2.1.28.tar.gz +0 -0
  33. data/dist/krb5-1.21.3.tar.gz +0 -0
  34. data/dist/openssl-3.0.16.tar.gz +0 -0
  35. data/dist/zlib-1.3.1.tar.gz +0 -0
  36. data/dist/zstd-1.5.7.tar.gz +0 -0
  37. data/ext/README.md +0 -19
  38. data/ext/Rakefile +0 -131
  39. data/ext/build_common.sh +0 -376
  40. data/ext/build_linux_aarch64_gnu.sh +0 -326
  41. data/ext/build_linux_x86_64_gnu.sh +0 -317
  42. data/ext/build_linux_x86_64_musl.sh +0 -773
  43. data/ext/build_macos_arm64.sh +0 -557
  44. data/ext/generate-ssl-certs.sh +0 -109
  45. data/spec/integrations/ssl_stress_spec.rb +0 -121
  46. data/spec/lib/rdkafka/abstract_handle_spec.rb +0 -117
  47. data/spec/lib/rdkafka/admin/create_acl_handle_spec.rb +0 -56
  48. data/spec/lib/rdkafka/admin/create_acl_report_spec.rb +0 -18
  49. data/spec/lib/rdkafka/admin/create_topic_handle_spec.rb +0 -54
  50. data/spec/lib/rdkafka/admin/create_topic_report_spec.rb +0 -16
  51. data/spec/lib/rdkafka/admin/delete_acl_handle_spec.rb +0 -85
  52. data/spec/lib/rdkafka/admin/delete_acl_report_spec.rb +0 -72
  53. data/spec/lib/rdkafka/admin/delete_topic_handle_spec.rb +0 -54
  54. data/spec/lib/rdkafka/admin/delete_topic_report_spec.rb +0 -16
  55. data/spec/lib/rdkafka/admin/describe_acl_handle_spec.rb +0 -85
  56. data/spec/lib/rdkafka/admin/describe_acl_report_spec.rb +0 -73
  57. data/spec/lib/rdkafka/admin_spec.rb +0 -982
  58. data/spec/lib/rdkafka/bindings_spec.rb +0 -198
  59. data/spec/lib/rdkafka/callbacks_spec.rb +0 -20
  60. data/spec/lib/rdkafka/config_spec.rb +0 -258
  61. data/spec/lib/rdkafka/consumer/headers_spec.rb +0 -73
  62. data/spec/lib/rdkafka/consumer/message_spec.rb +0 -139
  63. data/spec/lib/rdkafka/consumer/partition_spec.rb +0 -57
  64. data/spec/lib/rdkafka/consumer/topic_partition_list_spec.rb +0 -248
  65. data/spec/lib/rdkafka/consumer_spec.rb +0 -1343
  66. data/spec/lib/rdkafka/error_spec.rb +0 -95
  67. data/spec/lib/rdkafka/metadata_spec.rb +0 -79
  68. data/spec/lib/rdkafka/native_kafka_spec.rb +0 -130
  69. data/spec/lib/rdkafka/producer/delivery_handle_spec.rb +0 -60
  70. data/spec/lib/rdkafka/producer/delivery_report_spec.rb +0 -25
  71. data/spec/lib/rdkafka/producer/partitions_count_cache_spec.rb +0 -359
  72. data/spec/lib/rdkafka/producer_spec.rb +0 -1527
  73. data/spec/spec_helper.rb +0 -230
@@ -1,79 +0,0 @@
1
- name: Push Linux x86_64 musl Platform Gem
2
- on:
3
- push:
4
- tags:
5
- - v*
6
- permissions:
7
- contents: read
8
- env:
9
- BUNDLE_RETRY: 6
10
- BUNDLE_JOBS: 4
11
- jobs:
12
- build:
13
- if: github.repository_owner == 'karafka'
14
- timeout-minutes: 30
15
- runs-on: ubuntu-latest
16
- environment: deployment
17
- container:
18
- # Same as CI, we build on the oldest possible for ABI compatibility
19
- image: alpine:3.18@sha256:de0eb0b3f2a47ba1eb89389859a9bd88b28e82f5826b6969ad604979713c2d4f # renovate: ignore
20
- steps:
21
- - name: Install dependencies
22
- run: |
23
- apk add --no-cache git curl ca-certificates build-base linux-headers \
24
- pkgconf perl autoconf automake libtool bison flex file bash wget zstd-dev \
25
- openssl-dev cyrus-sasl-dev cyrus-sasl cyrus-sasl-login \
26
- cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapiv2 cyrus-sasl-scram \
27
- krb5-libs openssl zlib zlib-dev zstd-libs
28
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
29
- with:
30
- fetch-depth: 0
31
- - name: Configure git safe directory
32
- run: git config --global --add safe.directory /__w/karafka-rdkafka/karafka-rdkafka
33
- - name: Cache build-tmp directory
34
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
35
- with:
36
- path: ext/build-tmp-musl
37
- key: build-tmp-musl-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
38
- - name: Build precompiled librdkafka.so
39
- run: |
40
- cd ext
41
- bash ./build_linux_x86_64_musl.sh
42
- - name: Upload precompiled library
43
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
44
- with:
45
- name: librdkafka-precompiled-musl
46
- path: ext/
47
- retention-days: 1
48
-
49
- push:
50
- if: github.repository_owner == 'karafka'
51
- timeout-minutes: 30
52
- runs-on: ubuntu-latest
53
- needs: build
54
- environment: deployment
55
- permissions:
56
- contents: write
57
- id-token: write
58
- steps:
59
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
60
- with:
61
- fetch-depth: 0
62
- - name: Download precompiled library
63
- uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
64
- with:
65
- name: librdkafka-precompiled-musl
66
- path: ext/
67
- - name: Set up Ruby
68
- uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
69
- with:
70
- ruby-version: '3.4'
71
- bundler-cache: false
72
- - name: Configure trusted publishing credentials
73
- uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
74
- - name: Build and push platform-specific gem
75
- run: |
76
- gem build *.gemspec
77
- gem push *.gem
78
- env:
79
- RUBY_PLATFORM: 'x86_64-linux-musl'
@@ -1,54 +0,0 @@
1
- name: Push macOS ARM64 Platform Gem
2
-
3
- on:
4
- push:
5
- tags:
6
- - v*
7
-
8
- permissions:
9
- contents: read
10
-
11
- env:
12
- BUNDLE_RETRY: 6
13
- BUNDLE_JOBS: 4
14
-
15
- jobs:
16
- push:
17
- if: github.repository_owner == 'karafka'
18
- timeout-minutes: 30
19
- runs-on: macos-14
20
- environment: deployment
21
- permissions:
22
- contents: write
23
- id-token: write
24
- steps:
25
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
26
- with:
27
- fetch-depth: 0
28
- - name: Install Bash 4+ and Kerberos
29
- run: |
30
- brew install bash
31
- brew list krb5 &>/dev/null || brew install krb5
32
- echo "/opt/homebrew/bin" >> $GITHUB_PATH
33
- - name: Cache build-tmp directory
34
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
35
- with:
36
- path: ext/build-tmp-macos
37
- key: build-tmp-${{ runner.os }}-${{ hashFiles('ext/*.sh', 'ext/Rakefile') }}-v2
38
- - name: Set up Ruby
39
- uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
40
- with:
41
- ruby-version: '3.4'
42
- bundler-cache: false
43
- - name: Build precompiled librdkafka for macOS ARM64
44
- run: |
45
- cd ext
46
- /opt/homebrew/bin/bash ./build_macos_arm64.sh
47
- - name: Configure trusted publishing credentials
48
- uses: rubygems/configure-rubygems-credentials@bc6dd217f8a4f919d6835fcfefd470ef821f5c44 # v1.0.0
49
- - name: Build and push platform-specific gem
50
- run: |
51
- gem build *.gemspec
52
- gem push *.gem
53
- env:
54
- RUBY_PLATFORM: 'arm64-darwin'
@@ -1,37 +0,0 @@
1
- name: Push Ruby Platform Gem
2
-
3
- on:
4
- push:
5
- tags:
6
- - v*
7
-
8
- permissions:
9
- contents: read
10
-
11
- jobs:
12
- push:
13
- if: github.repository_owner == 'karafka'
14
- runs-on: ubuntu-latest
15
- environment: deployment
16
-
17
- permissions:
18
- contents: write
19
- id-token: write
20
-
21
- steps:
22
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
23
- with:
24
- fetch-depth: 0
25
-
26
- - name: Set up Ruby
27
- uses: ruby/setup-ruby@2a7b30092b0caf9c046252510f9273b4875f3db9 # v1.254.0
28
- with:
29
- bundler-cache: false
30
-
31
- - name: Build rdkafka-ruby
32
- run: |
33
- set -e
34
- bundle install
35
- cd ext && bundle exec rake
36
-
37
- - uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
@@ -1,30 +0,0 @@
1
- name: Trigger Wiki Refresh
2
-
3
- on:
4
- release:
5
- types: [published]
6
- push:
7
- branches: [main]
8
-
9
- jobs:
10
- trigger-wiki-refresh:
11
- runs-on: ubuntu-latest
12
- environment: wiki-trigger
13
- if: github.repository_owner == 'karafka'
14
- steps:
15
- - name: Trigger wiki refresh
16
- uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3.0.0
17
- with:
18
- token: ${{ secrets.WIKI_REPO_TOKEN }}
19
- repository: karafka/wiki
20
- event-type: sync-trigger
21
- client-payload: |
22
- {
23
- "repository": "${{ github.repository }}",
24
- "event_name": "${{ github.event_name }}",
25
- "release_tag": "${{ github.event.release.tag_name || '' }}",
26
- "release_name": "${{ github.event.release.name || '' }}",
27
- "commit_sha": "${{ github.sha }}",
28
- "commit_message": "Trigger Wiki Refresh",
29
- "triggered_by": "${{ github.actor }}"
30
- }
@@ -1,16 +0,0 @@
1
- name: Verify Action Pins
2
- on:
3
- pull_request:
4
- paths:
5
- - '.github/workflows/**'
6
- jobs:
7
- verify_action_pins:
8
- runs-on: ubuntu-latest
9
- steps:
10
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
11
- - name: Check SHA pins
12
- run: |
13
- if grep -E -r "uses: .*/.*@(v[0-9]+|main|master)($|[[:space:]]|$)" --include="*.yml" --include="*.yaml" .github/workflows/ | grep -v "#"; then
14
- echo "::error::Actions should use SHA pins, not tags or branch names"
15
- exit 1
16
- fi
data/.gitignore DELETED
@@ -1,16 +0,0 @@
1
- # Ignore bundler config.
2
- /.bundle
3
-
4
- Gemfile.lock
5
- ext/ports
6
- ext/tmp
7
- ext/librdkafka.*
8
- ext/build-tmp
9
- *.gem
10
- .yardoc
11
- doc
12
- coverage
13
- vendor
14
- .idea/
15
- out/
16
- ssl/
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --require spec_helper
2
- --format documentation
3
- --pattern spec/lib/**/*_spec.rb
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- rdkafka-ruby
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.4.5
data/.yardopts DELETED
@@ -1,2 +0,0 @@
1
- --no-private
2
- --markup=markdown
Binary file
Binary file
Binary file
Binary file
Binary file
data/ext/README.md DELETED
@@ -1,19 +0,0 @@
1
- # Ext
2
-
3
- This gem depends on the `librdkafka` C library. It is downloaded, stored in
4
- `dist/` directory, and checked into source control.
5
-
6
- To update the `librdkafka` version follow the following steps:
7
-
8
- * Go to https://github.com/confluentinc/librdkafka/releases to get the new
9
- version number and asset checksum for `tar.gz`.
10
- * Change the version in `lib/rdkafka/version.rb`
11
- * Change the `sha256` in `lib/rdkafka/version.rb`
12
- * Run `bundle exec rake dist:download` in the `ext` directory to download the
13
- new release and place it in the `dist/` for you
14
- * Run `bundle exec rake` in the `ext` directory to build the new version
15
- * Run `docker-compose pull` in the main gem directory to ensure the docker
16
- images used by the tests and run `docker-compose up`
17
- * Finally, run `bundle exec rspec` in the main gem directory to execute
18
- the test suite to detect any regressions that may have been introduced
19
- by the update
data/ext/Rakefile DELETED
@@ -1,131 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require File.expand_path('../../lib/rdkafka/version', __FILE__)
4
- require "digest"
5
- require "fileutils"
6
- require "open-uri"
7
-
8
- task :default => :clean do
9
- # For nix users, nix can't locate the file paths because the packages it's requiring aren't managed by the system but are
10
- # managed by nix itself, so using the normal file paths doesn't work for nix users.
11
- #
12
- # Mini_portile causes an issue because it's dependencies are downloaded on the fly and therefore don't exist/aren't
13
- # accessible in the nix environment
14
- if ENV.fetch('RDKAFKA_EXT_PATH', '').empty?
15
- # Download and compile librdkafka if RDKAFKA_EXT_PATH is not set
16
- require "mini_portile2"
17
- recipe = MiniPortile.new("librdkafka", Rdkafka::LIBRDKAFKA_VERSION)
18
-
19
- # Use default homebrew openssl if we're on mac and the directory exists, is not using nix-prepared libraries
20
- # and each of flags is not already set
21
- if recipe.host&.include?("darwin") && system("which brew &> /dev/null") && Dir.exist?("#{homebrew_prefix = %x(brew --prefix openssl).strip}") && !ENV.key?("NIX_LDFLAGS")
22
- ENV["CPPFLAGS"] = "-I#{homebrew_prefix}/include" unless ENV.key?("CPPFLAGS")
23
- ENV["LDFLAGS"] = "-L#{homebrew_prefix}/lib" unless ENV.key?("LDFLAGS")
24
- end
25
-
26
- releases = File.expand_path(File.join(File.dirname(__FILE__), '../dist'))
27
-
28
- recipe.files << {
29
- :url => "file://#{releases}/librdkafka-#{Rdkafka::LIBRDKAFKA_VERSION}.tar.gz",
30
- :sha256 => Rdkafka::LIBRDKAFKA_SOURCE_SHA256
31
- }
32
- recipe.configure_options = ["--host=#{recipe.host}"]
33
-
34
- recipe.patch_files = Dir[File.join(releases, 'patches', "*.patch")].sort
35
-
36
- # Disable using libc regex engine in favor of the embedded one
37
- # The default regex engine of librdkafka does not always work exactly as most of the users
38
- # would expect, hence this flag allows for changing it to the other one
39
- if ENV.key?('RDKAFKA_DISABLE_REGEX_EXT')
40
- recipe.configure_options << '--disable-regex-ext'
41
- end
42
-
43
- recipe.cook
44
- # Move dynamic library we're interested in
45
- if recipe.host.include?('darwin')
46
- from_extension = '1.dylib'
47
- to_extension = 'dylib'
48
- else
49
- from_extension = 'so.1'
50
- to_extension = 'so'
51
- end
52
- lib_path = File.join(File.dirname(__FILE__), "ports/#{recipe.host}/librdkafka/#{Rdkafka::LIBRDKAFKA_VERSION}/lib/librdkafka.#{from_extension}")
53
- FileUtils.mv(lib_path, File.join(File.dirname(__FILE__), "librdkafka.#{to_extension}"))
54
- # Cleanup files created by miniportile we don't need in the gem
55
- FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp")
56
- FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports")
57
- else
58
- # Otherwise, copy existing libraries to ./ext
59
- if ENV['RDKAFKA_EXT_PATH'].nil? || ENV['RDKAFKA_EXT_PATH'].empty?
60
- raise "RDKAFKA_EXT_PATH must be set in your nix config when running under nix"
61
- end
62
- files = [
63
- File.join(ENV['RDKAFKA_EXT_PATH'], 'lib', 'librdkafka.dylib'),
64
- File.join(ENV['RDKAFKA_EXT_PATH'], 'lib', 'librdkafka.so')
65
- ]
66
- files.each { |ext| FileUtils.cp(ext, File.dirname(__FILE__)) if File.exist?(ext) }
67
- end
68
- end
69
-
70
- task :clean do
71
- FileUtils.rm_f File.join(File.dirname(__FILE__), "librdkafka.dylib")
72
- FileUtils.rm_f File.join(File.dirname(__FILE__), "librdkafka.so")
73
- FileUtils.rm_rf File.join(File.dirname(__FILE__), "ports")
74
- FileUtils.rm_rf File.join(File.dirname(__FILE__), "tmp")
75
- end
76
-
77
- namespace :dist do
78
- task :dir do
79
- ENV["RDKAFKA_DIST_PATH"] ||= File.expand_path(File.join(File.dirname(__FILE__), '..', 'dist'))
80
- end
81
-
82
- task :file => "dist:dir" do
83
- ENV["RDKAFKA_DIST_FILE"] ||= File.join(ENV["RDKAFKA_DIST_PATH"], "librdkafka_#{Rdkafka::LIBRDKAFKA_VERSION}.tar.gz")
84
- end
85
-
86
- task :clean => "dist:file" do
87
- Dir.glob(File.join("#{ENV['RDKAFKA_DIST_PATH']}", "*")).each do |filename|
88
- next if filename.include? ENV["RDKAFKA_DIST_FILE"]
89
-
90
- FileUtils.rm_rf filename
91
- end
92
- end
93
-
94
- task :download => "dist:file" do
95
- version = Rdkafka::LIBRDKAFKA_VERSION
96
- librdkafka_download = "https://codeload.github.com/confluentinc/librdkafka/tar.gz/v#{version}"
97
-
98
- URI.open(librdkafka_download) do |file|
99
- filename = ENV["RDKAFKA_DIST_FILE"]
100
- data = file.read
101
-
102
- if Digest::SHA256.hexdigest(data) != Rdkafka::LIBRDKAFKA_SOURCE_SHA256
103
- raise "SHA256 does not match downloaded file"
104
- end
105
-
106
- File.write(filename, data)
107
- end
108
- end
109
-
110
- task :update => %w[dist:download dist:clean]
111
- end
112
-
113
- namespace :build do
114
- desc "Build librdkafka at the given git sha or tag"
115
- task :git, [:ref] do |task, args|
116
- ref = args[:ref]
117
- version = "git-#{ref}"
118
-
119
- recipe = MiniPortile.new("librdkafka", version)
120
- recipe.files << "https://github.com/confluentinc/librdkafka/archive/#{ref}.tar.gz"
121
- recipe.configure_options = ["--host=#{recipe.host}","--enable-static", "--enable-zstd"]
122
- recipe.patch_files = Dir[File.join(releases, 'patches', "*.patch")].sort
123
- recipe.cook
124
-
125
- ext = recipe.host.include?("darwin") ? "dylib" : "so"
126
- lib = File.expand_path("ports/#{recipe.host}/librdkafka/#{version}/lib/librdkafka.#{ext}", __dir__)
127
-
128
- # Copy will copy the content, following any symlinks
129
- FileUtils.cp(lib, __dir__)
130
- end
131
- end