Releases: karafka/rdkafka-ruby
Releases · karafka/rdkafka-ruby
v0.26.0
- [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_finalizerinRdkafka::Consumerto prevent segfaults when a consumer is GC'd without being explicitly closed (jturkel). - [Fix] Remove dead
#finalizerinstance methods fromConsumerandAdminthat 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::RdkafkaErrorwithinstance_nameattribute containing therd_kafka_namefor tying errors back to specific native Kafka instances (#181).
v0.25.1
- [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_eventsandenable_background_queue_io_eventsonConsumer,Producer, andAdminto 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) onConsumerthat skip GVL release for efficient fiber scheduler integration when usingpoll(0). - [Enhancement] Add
events_poll_nb_eachmethod onProducer,Consumer, andAdminfor polling events in a single GVL/mutex session. Yields count after each iteration, caller returns:stopto break. - [Enhancement] Add
poll_nb_eachmethod onConsumerfor non-blocking message polling with proper resource cleanup, yielding each message and supporting early termination via:stopreturn value.
v0.25.0
- [Deprecation]
AbstractHandle#waitparametermax_wait_timeout:(seconds) is deprecated in favor ofmax_wait_timeout_ms:(milliseconds). The old parameter still works but will be removed in v1.0.0. - [Deprecation]
PartitionsCountCacheconstructor parameterttl(seconds) is deprecated in favor ofttl_ms:(milliseconds). The old parameter still works but will be removed in v1.0.0. - [Enhancement] Extract all timeout defaults to
Rdkafka::Defaultsmodule for discoverability and per-call overrides (#310). All time-related values are now in milliseconds for consistency. - [Enhancement] Add
timeout_msparameter toConsumer#eachfor configurable poll timeout. - [Enhancement] Extract non-time configuration values (
METADATA_MAX_RETRIES,PARTITIONS_COUNT_CACHE_TTL_MS) toRdkafka::Defaultsmodule. - [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
v0.24.1
v0.24.0
v0.23.1
v0.23.0
- [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
jsongem as a dependency (was missing but used).