Skip to content

Releases: karafka/rdkafka-ruby

v0.26.0

02 Apr 11:13
76e6714

Choose a tag to compare

  • [Enhancement] Bump librdkafka to 2.13.2
  • [Enhancement] Embed a per-file SPEC_HASH in test topic and consumer group names for tracing Kafka warnings back to specific spec files.
  • [Fix] Register ObjectSpace.define_finalizer in Rdkafka::Consumer to prevent segfaults when a consumer is GC'd without being explicitly closed (jturkel).
  • [Fix] Remove dead #finalizer instance methods from Consumer and Admin that could never work as GC finalizers.
  • [Fix] Prevent cascading test failures in admin specs when a single handle leaks into the registry.
  • [Feature] Extend Rdkafka::RdkafkaError with instance_name attribute containing the rd_kafka_name for tying errors back to specific native Kafka instances (#181).

v0.25.1

26 Feb 16:46
7ab194b

Choose a tag to compare

  • [Enhancement] Use native ARM64 runners instead of QEMU emulation for Alpine musl aarch64 builds, improving build performance and reliability.
  • [Enhancement] Enable parallel compilation (make -j$(nproc)) for ARM64 Alpine musl builds.
  • [Enhancement] Add file descriptor API for fiber scheduler integration. Expose enable_queue_io_events and enable_background_queue_io_events on Consumer, Producer, and Admin to enable non-blocking monitoring with select/poll/epoll for integration with Ruby fiber schedulers (Falcon, Async) and custom event loops.
  • [Enhancement] Add non-blocking poll methods (poll_nb, events_poll_nb) on Consumer that skip GVL release for efficient fiber scheduler integration when using poll(0).
  • [Enhancement] Add events_poll_nb_each method on Producer, Consumer, and Admin for polling events in a single GVL/mutex session. Yields count after each iteration, caller returns :stop to break.
  • [Enhancement] Add poll_nb_each method on Consumer for non-blocking message polling with proper resource cleanup, yielding each message and supporting early termination via :stop return value.

v0.25.0

21 Jan 09:59
fb4cabf

Choose a tag to compare

  • [Deprecation] AbstractHandle#wait parameter max_wait_timeout: (seconds) is deprecated in favor of max_wait_timeout_ms: (milliseconds). The old parameter still works but will be removed in v1.0.0.
  • [Deprecation] PartitionsCountCache constructor parameter ttl (seconds) is deprecated in favor of ttl_ms: (milliseconds). The old parameter still works but will be removed in v1.0.0.
  • [Enhancement] Extract all timeout defaults to Rdkafka::Defaults module for discoverability and per-call overrides (#310). All time-related values are now in milliseconds for consistency.
  • [Enhancement] Add timeout_ms parameter to Consumer#each for configurable poll timeout.
  • [Enhancement] Extract non-time configuration values (METADATA_MAX_RETRIES, PARTITIONS_COUNT_CACHE_TTL_MS) to Rdkafka::Defaults module.
  • [Enhancement] Bump librdkafka to 2.12.1
  • [Enhancement] Add descriptive error messages for glibc compatibility issues with instructions for resolution (#654)
  • [Enhancement] Replace magic numbers with named constants throughout codebase for improved readability and maintainability

v0.24.2

31 Oct 20:29
8c44426

Choose a tag to compare

  • [Enhancement] Force lock FFI to 1.17.1 or higher to include critical bug fixes around GCC, write barriers, and thread restarts for forks.
  • [Fix] Fix for Core dump when providing extensions to oauthbearer_set_token (dssjoblom)

v0.24.1

10 Oct 13:11
cff4ae0

Choose a tag to compare

  • [Fix] Fix Github Action Ruby reference preventing non-compiled releases.

v0.24.0

10 Oct 12:59
177b9fd

Choose a tag to compare

  • [Enhancement] Bump librdkafka to 2.11.1

v0.23.1

25 Sep 13:53
be76ad6

Choose a tag to compare

  • [Enhancement] Improve sigstore attestation for precompiled releases.
  • [Fix] Fix incorrectly set default SSL certs dir.
  • [Fix] Disable OpenSSL Heartbeats during compilation.

v0.23.0

04 Sep 19:15
7e63f17

Choose a tag to compare

  • [Breaking] Drop support for Ruby 3.1 to move forward with the fiber scheduler work.
  • [Enhancement] Bump librdkafka to 2.11.0
  • [Enhancement] Support explicit Debian testing due to lib issues.
  • [Enhancement] Support ARM64 Gnu precompilation.
  • [Enhancement] Improve what symbols are exposed outside of the precompiled extensions.
  • [Enhancement] Introduce an integration suite layer for non RSpec specs execution.
  • [Fix] Add json gem as a dependency (was missing but used).

v0.22.2

21 Jul 19:52
4b6e37e

Choose a tag to compare

  • [Enhancement] Drastically increase number of platforms in the integration suite
  • [Fix] Support Ubuntu 22.04 and older Alpine precompiled versions
  • [Fix] FFI::DynamicLibrary.load_library': Could not open library

v0.22.1

17 Jul 15:27
a162a24

Choose a tag to compare

  • [Fix] Fix Rakefile being available in the precompiled versions causing build failures.