Skip to content

Releases: nats-io/nats.go

v1.38.0

17 Dec 16:23
48391f1
Compare
Choose a tag to compare

Changelog

Added

  • Core NATS:
    • Added UserInfoHandler for dynamically setting user/password (#1713)
    • Added PermissionErrOnSubscribe option, causing SubscribeSync to return nats.ErrPermissionViolation on NextMsg() if there was a permission error (#1728)
    • Added Msgs() method on Subscription, returning an iterator (iter.Seq2[*nats.Msg, error]) for the subscription. This method is only available for go version >=1.23 (#1728)
  • KeyValue:
  • Added WatchFiltered method to watch for updates with multiple filters (#1739)

Fixed

  • Core NATS:
    • Fixed closing connections on max subscriptions exceeded (#1709)
    • Removed redundant nil checks. Thanks @ramonberrutti for the contribution (#1751)
    • Add missing nats prefix to error (#1753)
  • JetStream:
    • Fixed PublishAsync not closing done and stall channels after failed retries (#1719)
    • Set valid fetch sequence in ordered consumer's Fetch() and Next() after timeout (#1705)
    • Do not overwrite ordered consumer deliver policy if start time is set (#1742)
    • Fixed race condition in MessageBatch (#1743)
  • Legacy JetStream:
    • Fixed race condition in MessageBatch (#1743)

Changed

  • Legacy Jetstream:
    • Added client retry for jetstream async publish old API. Thanks @pranavmehta94 for the contribution (#1695)

Improved

  • Moved CI to github actions (#1623, #1716)
  • Use errors.New instead of fmt.Errorf to improve efficiency. Thanks @canack for the contribution (#1707)
  • Fixed invalid schemas in Service API documentation (#1720)
  • Added mention of TTL reset in kv.Update method. Thanks @fmontorsi-equinix for the contribution (#1727)
  • Updated installation commands in README.md (#1745)
  • Bump nkeys to v0.4.9 (#1750)

Complete Changes

v1.37.0...v1.38.0

Release v1.37.0

13 Aug 10:32
278f9f1
Compare
Choose a tag to compare

Changelog

Added

  • JetStream:
    • CleanupPublisher method for removing internal JetStream subscription (#1690)
    • ConsumeContext.Closed() method for waiting for consume to be closed/drained (#1691)

Fixed

  • JetStream:
    • Fix deadlock when accessing subscriptions map on a consumer (#1671)
    • Fix panic in OrderedConsumer (#1686)
    • Fix setting deliver policy in Fetch() for OrderedConsumer (#1693)
  • Legacy JetStream:
    • Change Fetch and FetchBatch client timeout to a higher value (#1689)

Improved

  • Trim trailing slash if set on server address which can cause errors during lookup (#1654)
  • Fixed README.md formatting. Thanks @patrick-othmer for the contribution (#1692)

Deprecated

  • Deprecate encoded connections (#1674)

Complete Changes

v1.36.0...v1.37.0

Release v1.36.0

14 Jun 11:27
370bc4f
Compare
Choose a tag to compare

Changelog

Fixed

  • JetStream:
    • Set OptStartSeq correctly in OrderedConsumerConfig and simplify ordered consumer creation (#1644, #1645)
    • Fix invalid handling of mismatched sequence when using Messages() for ordered consumer (#1646)

Changed

  • JetStream:
    • Remove ConsumerInfo() calls in Consume() and Messages() after reconnect (#1643)

Improved

  • Fixed compatibility tests (#1637)
  • Fixed comment typos. Thanks @agcom for the contribution (#1638, #1639)

Complete Changes

v1.35.0...v1.36.0

Release v1.35.0

17 May 11:00
1ffb3ac
Compare
Choose a tag to compare

Changelog

Added

  • Service API:
    • Added API to read reply subject from micro.Request. Thanks @mcosta74 for the contribution (#1589)
  • Core NATS:
    • Added ForceReconnect method on connection for manually triggering reconnect (#1624)

Fixed

  • KeyValue:
    • Fixed invalid DiscardPolicy being set when creating a new KeyValue store using the jetstream package. Previously created KV instances will be auto-repaired when calling CreateKeyValue (#1616, #1617)
  • JetStream:
    • Fixed validation for streams, consumers and KV buckets to avoid protocol errors (#1613)
  • Core NATS:
    • Fixed ConnectedCB not being invoked when using RetryOnFailedConnect: true and the initial nats.Connect fails (#1619)

Improved

  • Core NATS:
    • Remove unnecessary allocations from readMIMEHeader (#1609)
  • KeyValue:
  • Legacy JetStream:
    • Added documentation for StreamConfig in jsm.go. Thanks @kazmerdome for the contribution (#1625)

Complete Changes

v1.34.1...v1.35.0

Release v1.34.1

03 Apr 14:03
10381e1
Compare
Choose a tag to compare

Changelog

Fixed

  • JetStream:
    • Fixed async publish error handling on disconnect (#1592)
    • Fixed race condition in Fetch and FetchBatch when using heartbeats (#1601)

Complete Changes

v1.34.0...v1.34.1

Release v1.34.0

20 Mar 21:24
33316cd
Compare
Choose a tag to compare

Changelog

Added

  • Core NATS:
    • StatusChanged method for subscription event notifications (#1570)
    • ClientTLSConfig option for setting TLS config with callbacks in Connect (#1413)

Fixed

  • Object Store:
    • Add missing Compression struct tag (#1559)
  • Legacy JetStream:
    • Fetch and FetchBatch will no longer publish a pull request if the subscription is closed or draining (#1582)
  • Service API:
    • Fixed incorrect error handling when creating a service. Thanks @ramonberrutti for the contribution (#1585)

Improved

  • Object Store:
  • Add testing section and format CONTRIBUTING.md. Thanks @yordis for the contribution (#1574)
  • Improved performance of respToken in muxer. Thanks for the report @chgz (#1575)
  • Fixed typos in comments. Thanks @paoloteti for the contribution (#1581)

Complete Changes

v1.33.1...v1.34.0

Release v1.33.1

16 Feb 15:06
8805fd6
Compare
Choose a tag to compare

Changelog

Overview

This release fixes v1.33.0 release which was re-released with different tag, causing checksum mismatch when running go get github.com/nats-io/nats.go@v1.33.0.

Complete Changes

v1.33.0...v1.33.1

Release v1.33.0

14 Feb 13:13
a91a735
Compare
Choose a tag to compare

Changelog

Overview

This release introduces significant documentation improvements across jetstream package components (JetStream, Object Store, and KeyValue).

Added

  • JetStream:
    • TermWithReason method on JetStream message (#1539)
    • Timestamp fields on stream and consumer infos (#1540)
    • FetchHeartbeat option for Fetch and FetchBytes (#1548)
  • Object Store:
    • Compression option for object store. Thanks to @johbar for the contribution (#1544)
    • UpdateObjectStore and CreateOrUpdateObjectStore methods (#1550)
  • KeyValue:
    • UpdateKeyValue and CreateOrUpdateKeyValue methods (#1549)

Fixed

  • JetStream:
    • Fixed Drain() infinite loop and add test for concurrent Next() calls. Thanks to @mdawar for the contribution (#1525)
    • Fixed race condition when resetting ordered consumer (#1526)
  • Object Store:
    • Fixed hardcoded read deadline when reading an object (#1531)

Improved

  • Refactored and improved documentation across jetstream package (JetStream, KeyValue and ObjectStore) (#1532, #1537, #1551, #1553, #1555)
  • Change "unsafe" comment on nats.Secure connect option. Thanks to @thorntonmc for the contribution (#1529)
  • Fixed documentation typos across the codebase. Thanks to @fancycode for the contribution (#1547)

Complete Changes

v1.32.0...v1.33.0

Release v1.32.0

12 Jan 13:28
61196eb
Compare
Choose a tag to compare

Changelog

Added

  • JetStream:
    • ObjectStore is now available as part of jetstream package (#1450)
    • Drain method for ConsumeContext and MessagesContext. Unlike Stop(), in addition to unsubscribing and canceling the existing pull requests it will ensure that all messages already stored in client buffer will be available for processing (#1515)
    • Return account reservations on AccountInfo. NOTE: This is only available since nats-server@v2.10.8 (#1511)
    • Paging Subjects on Stream.Info() response when WithSubjectFilter() option is used (#1517)
  • KeyValue:
    • Compression option on KeyValueConfig (#1451)
    • ListKeys method for efficiently iterating over all keys in KV bucket (#1490)
    • ResumeFromRevision option for KV watcher. Thanks to @shadow3x3x3 for the contribution (#1489)

Fixed

  • Legacy JetStream:
    • Fixed and issue where ordered consumer was recreated with different name format than the original (#1449)
  • JetStream:
    • Fixed an issue where WithRetryAttempts() and WithRetryWait() options were ignored in PublishAsync() (#1464)
    • Fixed invalid PullExpiry validation in Consumer.Messages() options (#1468)
    • Fixed race condition on Stop() method for ConsumeContext and MessagesContext . Thanks to
      @evanofslack for the contribution (#1454)
    • Fixed issues with Next() method for ordered consumers (#1471, #1472)
    • Fixed ignoring a private inbox prefix in JetStream.Publish(). Thanks to @oderwat for the contribution (#1474)
    • Fixed invalid PAF id for PublishAsync() (#1476)
    • Fixed race condition when getting pull subscriptions in ordered consumer (#1497)
    • Fixed several issues in checkPending logic (#1516)
  • KeyValue:
    • Removed KV_ prefix when listing KeyValue store names (#1487)
  • Service API:
    • Fixed race condition when adding endpoints concurrently. Thanks to @actatum for the contribution (#1484)

Improved

  • Bumped nkeys and compress dependencies to latest versions (#1458, #1514)
  • Fixed broken link in jetstream/README.md. Thanks to @sebbbastien for the contribution (#1448)
  • Improvements for code quality across the library. Thanks to @sashamelentyev for the contribution (#1498, #1500)
  • Legacy JetStream:
    • Library now attempts to delete ordered consumer before creating new one to avoid piling up consumers on reset (#1449)
  • Service API:
    • Added compatibility tests for Service API (#1443)

Complete Changes

v1.31.0...v1.32.0

Release v1.31.0

15 Oct 18:59
8712190
Compare
Choose a tag to compare

Changelog

Added

  • Core NATS:
    • TLSHandshakeFirst option to perform TLS handshake before receiving the INFO protocol message. Note: This option is not yet available in nats-server (#1433)
  • JetStream:
    • CreateOrUpdateStream helper function to create a stream if it does not exist or update an existing stream. Thanks to @samanebi for the contribution (#1395)

Fixed

  • Test (dev) dependencies are no longer added to go.mod when using nats.go. Thanks to @masumomo for the contribution (#1441)
  • JetStream:
    • Panic on Consumer.Info() when empty response and errors are returned (#1426)
    • Invalid handling of heartbeats in Consume and Messages (#1428)
    • Properly recreating ordered consumers on server restart (#1425)
  • Legacy JetStream:
    • Panic on ConsumerInfo() when empty response and errors are returned (#1426)

Improved

  • Fixed typos in jetstream/README.md. Thanks @cbrake for the contribution (#1436)
  • Updated client dependencies list (#1439, #1440)

Complete Changes

v1.30.2...v1.31.0