Skip to content

v0.31.0

Latest

Choose a tag to compare

@mensfeld mensfeld released this 09 Oct 13:54
· 57 commits to master since this release
2257277
  • [EOL] Drop Ruby 3.2 support; require Ruby 3.3+.
  • [Feature] Add status, latency and broker_id to Producer::DeliveryReport, with #persisted?, #possibly_persisted? and #not_persisted?, so a failed delivery tells whether a retry may duplicate the message.
  • [Feature] Add Admin#describe_cluster to get the cluster id, controller and broker nodes (with racks) without a full metadata request.
  • [Feature] Add Admin#describe_topics to get topic ids, partition leaders and replicas, and per-topic errors. Both methods can also return the operations the client is authorized to perform.
  • [Feature] Add Admin#describe_consumer_groups to read the state, type, coordinator, authorized operations and members (with their current and target partition assignments) of consumer groups.
  • [Enhancement] Bump librdkafka to 2.15.1 for OpenSSL and libcurl security fixes. It changes how IPv6 addresses are formatted and validated against broker certificates.
  • [Enhancement] Bump the bundled OpenSSL to 3.5.9 (LTS) for its security fixes.
  • [Enhancement] Read each pointer field once in Message#initialize, saving 3 allocations per consumed message.
  • [Change] Build the precompiled macos_arm64 library on macOS 26 with the minimum macOS pinned to 14.0, instead of inheriting it from the build host.
  • [Change] Build the precompiled aarch64-linux-musl gem on Alpine 3.24 (was 3.23), matching x86_64-linux-musl.
  • [Maintenance] Split lib/rdkafka/bindings.rb into per-area files under lib/rdkafka/bindings/. Rdkafka::Bindings is unchanged.