Skip to content

Release async-nats/v0.28.0

Compare
Choose a tag to compare
@Jarema Jarema released this 02 Mar 19:24
· 454 commits to main since this release

Overview

This release prepares the client for the 2.10.0 server release and adds some fixes and improvements.

To use the new features before the server 2.10.0 release, enable the server_2_10 feature and run it with dev/nightly server builds.

Breaking Changes

To enable NAK with backoff, the AckKind::NAK enum variant was changed

What was before:

AckKind::Nak

Now is:

AckKind::Nak(Option<std::time::Duration>)

Which means a standard NAK example

let message = messages.next().await?;
message.ack_kind(AckKind::Nak).await?;

Now should be used like this

let message = messages.next().await?;
message.ack_kind(AckKind::Nak(None)).await?;

or with custom NAK

message.ack_kind(AckKind::Nak(Some(std::time::Duration::from_secs(10))).await?;

Consumer info cluster field is now Option

This field is provided only in clustered mode, so it's now properly inline with that.

Consumer idle heartbeat error does not terminate the iterator

This change does not require any action from the users who want to continue using the client
as they do now, but those who would like to try continuing working with consumers,
even if it returned idle heartbeats, now they can.

Added

  • Add support for consumers with multiple filters (feature server-2.10) by @Jarema in #814
  • Add metadata support (feature server-2.10) by @Jarema in #837
  • Add NAK and backoff support by @Jarema in #839

Fixed

  • Fix flapping ack test by @Jarema in #842
  • Fix Pull Fetch test by @Jarema in #845
  • Update consumer last_seen on status messages and requests by @Jarema in #856
  • Improve pull consumer robustness for Consumer::stream and Consumer::messages by @Jarema in #858

Changed

Contributions

Thanks to @abalmos & @NorbertBodziony for helping with detailed reports and feedback!

Full Changelog: nats/v0.24.0...async-nats/v0.28.0