Skip to content

Releases: nats-io/nats.go

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

Release v1.30.2

27 Sep 08:46
9e5e706
Compare
Choose a tag to compare

Changelog

Fixed

  • JetStream:
    • Fixed backwards compatibility issue when creating streams with sources on nats-server 2.9.x (#1420)

Complete Changes

v1.30.1...v1.30.2

Release v1.30.1

25 Sep 14:10
a6bb6fa
Compare
Choose a tag to compare

Changelog

Fixed

  • JetStream:
    • Fixed validation on nats.PullHeartbeat() causing pull heartbeat not being validated against deadline from nats.Context() (#1414)

Complete Changes

v1.30.0...v1.30.1

Release v1.30.0

20 Sep 09:28
67a55c2
Compare
Choose a tag to compare

Changelog

Overview

This release focuses on adding features introduced in nats-server@v2.10.0. Among other things, this includes setting multiple filter subjects for a consumer, configuring stream subject transform, as well as setting stream and consumer metadata.

Added

  • JetStream:
    • SubjectTransform support on streams (#1200)
    • SubjectTransforms on mirrors and sources (#1359, #1404)
    • Multiple subject filters on consumers (#1214)
    • Setting Compression type on StreamConfig (#1405)
    • Setting FirstSeq on StreamConfig (#1405)
    • Setting ConsumerLimits on StreamConfig (#1405)
    • CreateConsumer and UpdateConsumer methods (#1379)
    • Support for stream and consumer metadata (#1384)
  • ObjectStore:
    • Support for object store and object metadata (#1385)
  • Service API (micro):
    • Customizing queue groups per service, group and endpoint (#1401)
  • Legacy JetStream:
    • SubjectTransform support on streams (#1200)
    • SubjectTransforms on mirrors and sources (#1359)
    • Multiple subject filters on consumers (#1214)
    • Setting Compression type on StreamConfig (#1405)
    • Setting FirstSeq on StreamConfig (#1405)
    • Setting ConsumerLimits on StreamConfig (#1405)
    • Setting heartbeats in Fetch and FetchBatch in legacy API (#1402)

Complete Changes

v1.29.0...v1.30.0

Release v1.29.0

13 Sep 10:32
ae58508
Compare
Choose a tag to compare

Changelog

Overview

With this release, Object Store is out of experimental preview. Additionally, jetstream package now supports KeyValue stores. Object store will be added to jetstream in future release.

Added

  • JetStream:
    • KeyValue is now available as part of jetstream (#1362)
  • KeyValue:
    • UpdatesOnly option for KV watchers (#1378)
  • ObjectStore:
    • UpdatesOnly option for object store watchers (#1377)
  • Core NATS:
    • Invoke ErrorHandler() on preparing connection string when reconnecting (#1397)

Improved

  • Fixed several flaky tests (#1374, #1380)
  • Improve comment on MaxReconnects. Thanks @mojixcoder for the contribution (#1394)
  • Typos in comments and error messages across the code base. Thanks @paoloteti for the contribution (#1381)
  • JetStream:
    • Fix typo in doc comment for SkipConsumerLookup. Thanks to @4nte for the contribution (#1355)
    • Remove doubled error handling. Thanks @samanebi for the contribution (#1387)
  • ObjectStore:

Changed

  • ObjectStore:
    • Remove experimental notice from object store (#1399)
  • Core NATS:
    • Use default value for FlusherTimeout instead of 0 (#1398)

Fixed

  • JetStream:
    • Fixed deadlock when acknowledging a message which was previously acknowledged. Thanks @Zamony for the contribution (#1364)
  • Service API (micro):
    • Fixed possible panic in custom error handlers (#1371)
  • Legacy JetStream:
    • Fixed ordered consumer not being recreated after context timeout (#1360)

Complete Changes

v1.28.0...v1.29.0