nats-io/nats.go
### [`v1.16.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.16.0)
[Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.15.0...v1.16.0)
#### Changelog
##### Added
- JetStream:
- **Experimental**: `StreamConfig.RePublish` configuration, which is a `SubjectMapping` (source/destination) which allows the republish of a message after being sequenced and stored ([#980](https://togithub.com/nats-io/nats.go/issues/980))
- **Experimental**: Two new `ConsumerConfig` fields: `Replicas` and `MemoryStorage` which are generally inherited by parent stream, but can be configured directly ([#980](https://togithub.com/nats-io/nats.go/issues/980))
- Websocket:
- `ProxyPath()` option to add a path to websocket connection URLs. Thanks to [@ido-gold-apolicy](https://togithub.com/ido-gold-apolicy) for the contribution ([#974](https://togithub.com/nats-io/nats.go/issues/974))
##### Complete Changes
### [`v1.15.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.15.0)
[Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.14.0...v1.15.0)
#### Changelog
##### Experimental
The `ObjectStore` is still experimental and subject to change.
##### Added
- ObjectStore:
- `MaxBytes` in the `ObjectStoreConfig` structure ([#955](https://togithub.com/nats-io/nats.go/issues/955))
##### Improved
- JetStream:
- Ability pass `0` to `nats.ExpectLastSequence(0)` and `nats.ExpectLastSequencePerSubject(0)` to the `js.Publish()` call. Previously, the value `0` would be ignored and the header would not be set. Note that currently, the server only accepts `0` as a valid value for `nats.ExpectLastSequencePerSubject()`. Thanks to [@bruth](https://togithub.com/bruth) for the contribution ([#958](https://togithub.com/nats-io/nats.go/issues/958))
##### Fixed
- JetStream:
- A PullConsumer's Fetch() method with a batch greater than 1 and with other pull consumers running, may timeout although messages would have been available ([#967](https://togithub.com/nats-io/nats.go/issues/967))
##### Complete Changes
### [`v1.14.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.14.0)
[Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.13.0...v1.14.0)
#### Changelog
***JetStream and KeyValue users***
Please see the "Changed" section for important (possibly breaking) changes compared to the previous version.
##### Experimental
The `ObjectStore` is still experimental and subject to change.
##### Added
- JetStream:
- Support for tracing API calls ([#849](https://togithub.com/nats-io/nats.go/issues/849), [#911](https://togithub.com/nats-io/nats.go/issues/911))
- Error `ErrMsgAlreadyAckd` for a more detailed error when trying to acknowledge a message that already was. Thanks to [@Berreek](https://togithub.com/Berreek) for the contribution ([#862](https://togithub.com/nats-io/nats.go/issues/862))
- Made `js.Subscribe()` calls context aware ([#872](https://togithub.com/nats-io/nats.go/issues/872))
- `UpdateConsumer()` and new consumer configuration options: `MaxRequestBatch`, `MaxRequestExpires` and `InactiveThreshold` ([#893](https://togithub.com/nats-io/nats.go/issues/893))
- `NakWithDelay()` new acknowledgment call, and `BackOff` list of duration in the `ConsumerConfig` object ([#894](https://togithub.com/nats-io/nats.go/issues/894))
- `BackOff()` subscription option. Thanks to [@mfaizanse](https://togithub.com/mfaizanse) for the contribution ([#933](https://togithub.com/nats-io/nats.go/issues/933))
- `StallWait()` publish option. This is the wait time (default is 200ms) that the library will wait when reaching the maximum inflight number of asynchronous publish calls ([#941](https://togithub.com/nats-io/nats.go/issues/941))
- KeyValue:
- Status functionality ([#845](https://togithub.com/nats-io/nats.go/issues/845))
- `MetaOnly()` watcher option ([#854](https://togithub.com/nats-io/nats.go/issues/854))
- `GetRevision()` to get the key at a specific revision, or `ErrKeyNotFound` if the key does not exist or not at the expected revision. Thanks to [@boxboatmatt](https://togithub.com/boxboatmatt) for the contribution ([#903](https://togithub.com/nats-io/nats.go/issues/903))
- `Placement` in the `KeyValueConfig` structure ([#929](https://togithub.com/nats-io/nats.go/issues/929))
- Expose `nats.Context()` option for the `nats.KeyWatcher` interface. Thanks to [@boxboatmatt](https://togithub.com/boxboatmatt) for the contribution ([#904](https://togithub.com/nats-io/nats.go/issues/904))
- ObjectStore:
- Status functionality ([#845](https://togithub.com/nats-io/nats.go/issues/845))
- `Placement` in the ` ObjectStoreConfig ` structure ([#929](https://togithub.com/nats-io/nats.go/issues/929))
- `ConnectedUrlRedacted()` a redacted version of `ConnectedUrl()` ([#923](https://togithub.com/nats-io/nats.go/issues/923))
##### Changed
- JetStream:
- The library no longer sets a default `MaxAckPending` when creating a JetStream consumer on `Subscribe()`. The selection of the value is left for the server to pick ([#920](https://togithub.com/nats-io/nats.go/issues/920))
- The library will now try to resend a message when getting a `ErrNoResponders` error on a `Publish()` or `StreamInfo()` call. This is to overcome "blips" that may happen during leader changes. The action will be retried up to 2 times with a 250ms wait in between. These can be changed with the new publish options `RetryWait()` and `RetryAttempts()` ([#930](https://togithub.com/nats-io/nats.go/issues/930))
- `PublishMsgAsync()` will now be limited to `4,000` maximum asynchronous publish calls inflight, if no maximum has been specified with `PublishAsyncMaxPending()` option.
- KeyValue:
- `Delete()` and `Purge()` now accept optional `DeleteOpt` options. The option available is `LastRevision()` which allows the purge or delete to be conditional to the last revision be equal to the last revision value, otherwise the operation will fail. Thanks to [@steveh](https://togithub.com/steveh) for the contribution ([#856](https://togithub.com/nats-io/nats.go/issues/856))
- `PurgeDeletes()` will now keep markers that are less than 30 minutes by default. Also, `PurgeDeletes()` now accepts optional `PurgeOpt` values, not `WatchOpt`. The new `DeleteMarkersOlderThan()` option can be provided to change the default 30 minutes. A negative value will remove markers, regardless of their age ([#906](https://togithub.com/nats-io/nats.go/issues/906))
- When connecting to a `v2.7.2+` server, the stream for the KeyValue should be created with `DiscardNew` instead of `DiscardOld`. The library will now automatically update an existing stream for a KeyValue from `DiscardOld` to `DiscardNew` ([#917](https://togithub.com/nats-io/nats.go/issues/917))
##### Improved
- Websocket:
- Use `80` or `443` as default ports, depending on the scheme `ws://` or `wss://`. Thanks to [@cbrake](https://togithub.com/cbrake) for the suggestion ([#879](https://togithub.com/nats-io/nats.go/issues/879))
- The connect failure error message when given an invalid user credentials file ([#916](https://togithub.com/nats-io/nats.go/issues/916))
- The library will now auto-reconnect when the connection is closed on maximum connections reached from server, which could happen after a configuration reload. The library would previously have caused the connection to be permanently closed ([#935](https://togithub.com/nats-io/nats.go/issues/935))
##### Updated
- Examples:
- The `Nats-echo` service example to simulate a status request ([#950](https://togithub.com/nats-io/nats.go/issues/950))
- Comment for the demo servers. Removed the TLS specific version since one can connect with TLS or not to the same port ([#952](https://togithub.com/nats-io/nats.go/issues/952))
##### Fixed
- Documentation:
- Typo in `Bind` go documentation. Thanks to [@caspervonb](https://togithub.com/caspervonb) for the contribution ([#860](https://togithub.com/nats-io/nats.go/issues/860))
- Typo in `SetClosedHandler`. Thanks to [@tormoder](https://togithub.com/tormoder) for the contribution ([#877](https://togithub.com/nats-io/nats.go/issues/877))
- Typo in example_test.go. Thanks to [@bvwells](https://togithub.com/bvwells) for the contribution ([#882](https://togithub.com/nats-io/nats.go/issues/882))
- Comment for `Subscribe` method. Thanks to [@ipromax](https://togithub.com/ipromax) for the contribution ([#886](https://togithub.com/nats-io/nats.go/issues/886))
- Many API calls where not checking that stream and consumer names were valid, that is, did not contain a `.` in their name. This resulted in situations where the API would timeout because the server did not have interest on the malformed subject. Thanks to [@sata-form3](https://togithub.com/sata-form3) for the report ([#947](https://togithub.com/nats-io/nats.go/issues/947))
- JetStream:
- Ordered consumers handling of auto unsubscribe ([#847](https://togithub.com/nats-io/nats.go/issues/847))
- Activity check to handle cases when subscription was closed. Thanks to [@boxboatmatt](https://togithub.com/boxboatmatt) for the contribution ([#873](https://togithub.com/nats-io/nats.go/issues/873))
- Return `ErrStreamNotFound` when calling `AddConsumer` against a missing stream ([#881](https://togithub.com/nats-io/nats.go/issues/881))
- Prefix the error returned by `StreamInfo()` with ` nats: ` to match `ConsumerInfo()` ([#928](https://togithub.com/nats-io/nats.go/issues/928))
- KeyValue:
- Ensure `Get()` returns a `nil` and `ErrKeyNotFound` as per specification ([#844](https://togithub.com/nats-io/nats.go/issues/844))
- Various issues, such as cancel of the context would not all the range on w.Updates() to exit, flow control, etc.. ([#900](https://togithub.com/nats-io/nats.go/issues/900), [#901](https://togithub.com/nats-io/nats.go/issues/901))
- Use of the `APIPrefix` to work correctly across accounts ([#910](https://togithub.com/nats-io/nats.go/issues/910))
- Websocket:
- When using secure connection `wss://` and a host name that resolves to multiple IPs, or when trying to reconnect to discovered servers, the (re)connection would fail with `websocket invalid connection` ([#915](https://togithub.com/nats-io/nats.go/issues/915))
- Deadlock on authentication failure that manifested by a `Connect()` hanging forever. Thanks to [@wenerme](https://togithub.com/wenerme) for the report ([#926](https://togithub.com/nats-io/nats.go/issues/926))
##### Complete Changes
### [`v1.13.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.13.0)
[Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.3...v1.13.0)
#### Changelog
***JetStream users***
Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release.
##### Experimental
This release introduces KeyValue and ObjectStore as experimental features. Note that their APIs are subject to change based on community feedback. Also, some features will not work unless using NATS Server from the main branch, or the version following the latest public release v2.6.1.
##### Added
- JetStream:
- `HeadersOnly()` subscription option to only deliver headers but not the message payloads ([#832](https://togithub.com/nats-io/nats.go/issues/832))
- `Sealed`, `DenyDelete`, `DenyPurge` and `AllowRollup` stream configuration options ([#832](https://togithub.com/nats-io/nats.go/issues/832))
- `GetLastMsg()` retrieves the last raw stream message stored in JetStream by subject ([#832](https://togithub.com/nats-io/nats.go/issues/832))
- KeyValue and ObjectStore ([#832](https://togithub.com/nats-io/nats.go/issues/832))
- `ConnectedServerVersion()` returns the server's version string, or empty if not currently connected to a server ([#832](https://togithub.com/nats-io/nats.go/issues/832))
##### Fixed
- JetStream:
- Flow control may stall in some conditions ([#837](https://togithub.com/nats-io/nats.go/issues/837))
- Context usage for `Fetch()` and `Ack()`. Thanks to [@andreib1](https://togithub.com/andreib1) and [@T-J-L](https://togithub.com/T-J-L) for the reports ([#838](https://togithub.com/nats-io/nats.go/issues/838))
- Queue name cannot contain "." character when used as the durable name. Thanks to [@saschahagedorn-f3](https://togithub.com/saschahagedorn-f3) for the report ([#841](https://togithub.com/nats-io/nats.go/issues/841))
- `PublishMsgAsync` would fail if a message reply was already set ([#832](https://togithub.com/nats-io/nats.go/issues/832))
##### Complete Changes
### [`v1.12.3`](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.3)
[Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.2...v1.12.3)
#### Changelog
***JetStream users***
Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release.
##### Fixed
- JetStream:
- Received message may have wrong subject. This is a regression due to an attempt to reduce subject string copy in v1.12.2 ([#827](https://togithub.com/nats-io/nats.go/issues/827))
##### Complete Changes
### [`v1.12.2`](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.2)
[Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.1...v1.12.2)
#### Changelog
***JetStream users***
Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release.
##### Updated
- JetStream:
- Go doc for subscription calls in the interface ([#818](https://togithub.com/nats-io/nats.go/issues/818))
##### Improved
- Reduce memory allocation for inbound messages. Thanks to [@moredure](https://togithub.com/moredure) for the contribution ([#824](https://togithub.com/nats-io/nats.go/issues/824))
##### Fixed
- JetStream:
- Unblock Pull Subscribe requests on a 408 with at least a message already fetched ([#823](https://togithub.com/nats-io/nats.go/issues/823))
- Websocket:
- Possible panic when decoding CLOSE frame. Thanks to [@byazrail](https://togithub.com/byazrail) for the report ([#821](https://togithub.com/nats-io/nats.go/issues/821))
##### Complete Changes
### [`v1.12.1`](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.1)
[Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.0...v1.12.1)
#### Changelog
***JetStream users***
Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release.
##### Added
- Stringer for connection's `Status()`. Thanks to [@JosephWoodward](https://togithub.com/JosephWoodward) for the contribution ([#812](https://togithub.com/nats-io/nats.go/issues/812))
##### Fixed
- JetStream:
- `Fetch()` could return immediately with a timeout error. Thanks to [@izarraga](https://togithub.com/izarraga) for the report ([#813](https://togithub.com/nats-io/nats.go/issues/813))
- Inboxes suffix would contain many zeros ([#808](https://togithub.com/nats-io/nats.go/issues/808))
##### Complete Changes
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v1.12.0
->v1.16.0
Release Notes
nats-io/nats.go
### [`v1.16.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.16.0) [Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.15.0...v1.16.0) #### Changelog ##### Added - JetStream: - **Experimental**: `StreamConfig.RePublish` configuration, which is a `SubjectMapping` (source/destination) which allows the republish of a message after being sequenced and stored ([#980](https://togithub.com/nats-io/nats.go/issues/980)) - **Experimental**: Two new `ConsumerConfig` fields: `Replicas` and `MemoryStorage` which are generally inherited by parent stream, but can be configured directly ([#980](https://togithub.com/nats-io/nats.go/issues/980)) - Websocket: - `ProxyPath()` option to add a path to websocket connection URLs. Thanks to [@ido-gold-apolicy](https://togithub.com/ido-gold-apolicy) for the contribution ([#974](https://togithub.com/nats-io/nats.go/issues/974)) ##### Complete Changes ### [`v1.15.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.15.0) [Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.14.0...v1.15.0) #### Changelog ##### Experimental The `ObjectStore` is still experimental and subject to change. ##### Added - ObjectStore: - `MaxBytes` in the `ObjectStoreConfig` structure ([#955](https://togithub.com/nats-io/nats.go/issues/955)) ##### Improved - JetStream: - Ability pass `0` to `nats.ExpectLastSequence(0)` and `nats.ExpectLastSequencePerSubject(0)` to the `js.Publish()` call. Previously, the value `0` would be ignored and the header would not be set. Note that currently, the server only accepts `0` as a valid value for `nats.ExpectLastSequencePerSubject()`. Thanks to [@bruth](https://togithub.com/bruth) for the contribution ([#958](https://togithub.com/nats-io/nats.go/issues/958)) ##### Fixed - JetStream: - A PullConsumer's Fetch() method with a batch greater than 1 and with other pull consumers running, may timeout although messages would have been available ([#967](https://togithub.com/nats-io/nats.go/issues/967)) ##### Complete Changes ### [`v1.14.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.14.0) [Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.13.0...v1.14.0) #### Changelog ***JetStream and KeyValue users*** Please see the "Changed" section for important (possibly breaking) changes compared to the previous version. ##### Experimental The `ObjectStore` is still experimental and subject to change. ##### Added - JetStream: - Support for tracing API calls ([#849](https://togithub.com/nats-io/nats.go/issues/849), [#911](https://togithub.com/nats-io/nats.go/issues/911)) - Error `ErrMsgAlreadyAckd` for a more detailed error when trying to acknowledge a message that already was. Thanks to [@Berreek](https://togithub.com/Berreek) for the contribution ([#862](https://togithub.com/nats-io/nats.go/issues/862)) - Made `js.Subscribe()` calls context aware ([#872](https://togithub.com/nats-io/nats.go/issues/872)) - `UpdateConsumer()` and new consumer configuration options: `MaxRequestBatch`, `MaxRequestExpires` and `InactiveThreshold` ([#893](https://togithub.com/nats-io/nats.go/issues/893)) - `NakWithDelay()` new acknowledgment call, and `BackOff` list of duration in the `ConsumerConfig` object ([#894](https://togithub.com/nats-io/nats.go/issues/894)) - `BackOff()` subscription option. Thanks to [@mfaizanse](https://togithub.com/mfaizanse) for the contribution ([#933](https://togithub.com/nats-io/nats.go/issues/933)) - `StallWait()` publish option. This is the wait time (default is 200ms) that the library will wait when reaching the maximum inflight number of asynchronous publish calls ([#941](https://togithub.com/nats-io/nats.go/issues/941)) - KeyValue: - Status functionality ([#845](https://togithub.com/nats-io/nats.go/issues/845)) - `MetaOnly()` watcher option ([#854](https://togithub.com/nats-io/nats.go/issues/854)) - `GetRevision()` to get the key at a specific revision, or `ErrKeyNotFound` if the key does not exist or not at the expected revision. Thanks to [@boxboatmatt](https://togithub.com/boxboatmatt) for the contribution ([#903](https://togithub.com/nats-io/nats.go/issues/903)) - `Placement` in the `KeyValueConfig` structure ([#929](https://togithub.com/nats-io/nats.go/issues/929)) - Expose `nats.Context()` option for the `nats.KeyWatcher` interface. Thanks to [@boxboatmatt](https://togithub.com/boxboatmatt) for the contribution ([#904](https://togithub.com/nats-io/nats.go/issues/904)) - ObjectStore: - Status functionality ([#845](https://togithub.com/nats-io/nats.go/issues/845)) - `Placement` in the ` ObjectStoreConfig ` structure ([#929](https://togithub.com/nats-io/nats.go/issues/929)) - `ConnectedUrlRedacted()` a redacted version of `ConnectedUrl()` ([#923](https://togithub.com/nats-io/nats.go/issues/923)) ##### Changed - JetStream: - The library no longer sets a default `MaxAckPending` when creating a JetStream consumer on `Subscribe()`. The selection of the value is left for the server to pick ([#920](https://togithub.com/nats-io/nats.go/issues/920)) - The library will now try to resend a message when getting a `ErrNoResponders` error on a `Publish()` or `StreamInfo()` call. This is to overcome "blips" that may happen during leader changes. The action will be retried up to 2 times with a 250ms wait in between. These can be changed with the new publish options `RetryWait()` and `RetryAttempts()` ([#930](https://togithub.com/nats-io/nats.go/issues/930)) - `PublishMsgAsync()` will now be limited to `4,000` maximum asynchronous publish calls inflight, if no maximum has been specified with `PublishAsyncMaxPending()` option. - KeyValue: - `Delete()` and `Purge()` now accept optional `DeleteOpt` options. The option available is `LastRevision()` which allows the purge or delete to be conditional to the last revision be equal to the last revision value, otherwise the operation will fail. Thanks to [@steveh](https://togithub.com/steveh) for the contribution ([#856](https://togithub.com/nats-io/nats.go/issues/856)) - `PurgeDeletes()` will now keep markers that are less than 30 minutes by default. Also, `PurgeDeletes()` now accepts optional `PurgeOpt` values, not `WatchOpt`. The new `DeleteMarkersOlderThan()` option can be provided to change the default 30 minutes. A negative value will remove markers, regardless of their age ([#906](https://togithub.com/nats-io/nats.go/issues/906)) - When connecting to a `v2.7.2+` server, the stream for the KeyValue should be created with `DiscardNew` instead of `DiscardOld`. The library will now automatically update an existing stream for a KeyValue from `DiscardOld` to `DiscardNew` ([#917](https://togithub.com/nats-io/nats.go/issues/917)) ##### Improved - Websocket: - Use `80` or `443` as default ports, depending on the scheme `ws://` or `wss://`. Thanks to [@cbrake](https://togithub.com/cbrake) for the suggestion ([#879](https://togithub.com/nats-io/nats.go/issues/879)) - The connect failure error message when given an invalid user credentials file ([#916](https://togithub.com/nats-io/nats.go/issues/916)) - The library will now auto-reconnect when the connection is closed on maximum connections reached from server, which could happen after a configuration reload. The library would previously have caused the connection to be permanently closed ([#935](https://togithub.com/nats-io/nats.go/issues/935)) ##### Updated - Examples: - The `Nats-echo` service example to simulate a status request ([#950](https://togithub.com/nats-io/nats.go/issues/950)) - Comment for the demo servers. Removed the TLS specific version since one can connect with TLS or not to the same port ([#952](https://togithub.com/nats-io/nats.go/issues/952)) ##### Fixed - Documentation: - Typo in `Bind` go documentation. Thanks to [@caspervonb](https://togithub.com/caspervonb) for the contribution ([#860](https://togithub.com/nats-io/nats.go/issues/860)) - Typo in `SetClosedHandler`. Thanks to [@tormoder](https://togithub.com/tormoder) for the contribution ([#877](https://togithub.com/nats-io/nats.go/issues/877)) - Typo in example_test.go. Thanks to [@bvwells](https://togithub.com/bvwells) for the contribution ([#882](https://togithub.com/nats-io/nats.go/issues/882)) - Comment for `Subscribe` method. Thanks to [@ipromax](https://togithub.com/ipromax) for the contribution ([#886](https://togithub.com/nats-io/nats.go/issues/886)) - Many API calls where not checking that stream and consumer names were valid, that is, did not contain a `.` in their name. This resulted in situations where the API would timeout because the server did not have interest on the malformed subject. Thanks to [@sata-form3](https://togithub.com/sata-form3) for the report ([#947](https://togithub.com/nats-io/nats.go/issues/947)) - JetStream: - Ordered consumers handling of auto unsubscribe ([#847](https://togithub.com/nats-io/nats.go/issues/847)) - Activity check to handle cases when subscription was closed. Thanks to [@boxboatmatt](https://togithub.com/boxboatmatt) for the contribution ([#873](https://togithub.com/nats-io/nats.go/issues/873)) - Return `ErrStreamNotFound` when calling `AddConsumer` against a missing stream ([#881](https://togithub.com/nats-io/nats.go/issues/881)) - Prefix the error returned by `StreamInfo()` with ` nats: ` to match `ConsumerInfo()` ([#928](https://togithub.com/nats-io/nats.go/issues/928)) - KeyValue: - Ensure `Get()` returns a `nil` and `ErrKeyNotFound` as per specification ([#844](https://togithub.com/nats-io/nats.go/issues/844)) - Various issues, such as cancel of the context would not all the range on w.Updates() to exit, flow control, etc.. ([#900](https://togithub.com/nats-io/nats.go/issues/900), [#901](https://togithub.com/nats-io/nats.go/issues/901)) - Use of the `APIPrefix` to work correctly across accounts ([#910](https://togithub.com/nats-io/nats.go/issues/910)) - Websocket: - When using secure connection `wss://` and a host name that resolves to multiple IPs, or when trying to reconnect to discovered servers, the (re)connection would fail with `websocket invalid connection` ([#915](https://togithub.com/nats-io/nats.go/issues/915)) - Deadlock on authentication failure that manifested by a `Connect()` hanging forever. Thanks to [@wenerme](https://togithub.com/wenerme) for the report ([#926](https://togithub.com/nats-io/nats.go/issues/926)) ##### Complete Changes ### [`v1.13.0`](https://togithub.com/nats-io/nats.go/releases/tag/v1.13.0) [Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.3...v1.13.0) #### Changelog ***JetStream users*** Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release. ##### Experimental This release introduces KeyValue and ObjectStore as experimental features. Note that their APIs are subject to change based on community feedback. Also, some features will not work unless using NATS Server from the main branch, or the version following the latest public release v2.6.1. ##### Added - JetStream: - `HeadersOnly()` subscription option to only deliver headers but not the message payloads ([#832](https://togithub.com/nats-io/nats.go/issues/832)) - `Sealed`, `DenyDelete`, `DenyPurge` and `AllowRollup` stream configuration options ([#832](https://togithub.com/nats-io/nats.go/issues/832)) - `GetLastMsg()` retrieves the last raw stream message stored in JetStream by subject ([#832](https://togithub.com/nats-io/nats.go/issues/832)) - KeyValue and ObjectStore ([#832](https://togithub.com/nats-io/nats.go/issues/832)) - `ConnectedServerVersion()` returns the server's version string, or empty if not currently connected to a server ([#832](https://togithub.com/nats-io/nats.go/issues/832)) ##### Fixed - JetStream: - Flow control may stall in some conditions ([#837](https://togithub.com/nats-io/nats.go/issues/837)) - Context usage for `Fetch()` and `Ack()`. Thanks to [@andreib1](https://togithub.com/andreib1) and [@T-J-L](https://togithub.com/T-J-L) for the reports ([#838](https://togithub.com/nats-io/nats.go/issues/838)) - Queue name cannot contain "." character when used as the durable name. Thanks to [@saschahagedorn-f3](https://togithub.com/saschahagedorn-f3) for the report ([#841](https://togithub.com/nats-io/nats.go/issues/841)) - `PublishMsgAsync` would fail if a message reply was already set ([#832](https://togithub.com/nats-io/nats.go/issues/832)) ##### Complete Changes ### [`v1.12.3`](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.3) [Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.2...v1.12.3) #### Changelog ***JetStream users*** Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release. ##### Fixed - JetStream: - Received message may have wrong subject. This is a regression due to an attempt to reduce subject string copy in v1.12.2 ([#827](https://togithub.com/nats-io/nats.go/issues/827)) ##### Complete Changes ### [`v1.12.2`](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.2) [Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.1...v1.12.2) #### Changelog ***JetStream users*** Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release. ##### Updated - JetStream: - Go doc for subscription calls in the interface ([#818](https://togithub.com/nats-io/nats.go/issues/818)) ##### Improved - Reduce memory allocation for inbound messages. Thanks to [@moredure](https://togithub.com/moredure) for the contribution ([#824](https://togithub.com/nats-io/nats.go/issues/824)) ##### Fixed - JetStream: - Unblock Pull Subscribe requests on a 408 with at least a message already fetched ([#823](https://togithub.com/nats-io/nats.go/issues/823)) - Websocket: - Possible panic when decoding CLOSE frame. Thanks to [@byazrail](https://togithub.com/byazrail) for the report ([#821](https://togithub.com/nats-io/nats.go/issues/821)) ##### Complete Changes ### [`v1.12.1`](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.1) [Compare Source](https://togithub.com/nats-io/nats.go/compare/v1.12.0...v1.12.1) #### Changelog ***JetStream users*** Please review release notes from [v1.12.0](https://togithub.com/nats-io/nats.go/releases/tag/v1.12.0) regarding important changes if upgrading from an earlier release. ##### Added - Stringer for connection's `Status()`. Thanks to [@JosephWoodward](https://togithub.com/JosephWoodward) for the contribution ([#812](https://togithub.com/nats-io/nats.go/issues/812)) ##### Fixed - JetStream: - `Fetch()` could return immediately with a timeout error. Thanks to [@izarraga](https://togithub.com/izarraga) for the report ([#813](https://togithub.com/nats-io/nats.go/issues/813)) - Inboxes suffix would contain many zeros ([#808](https://togithub.com/nats-io/nats.go/issues/808)) ##### Complete ChangesConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.