Releases: nats-io/nats.go
Release v1.30.1
Changelog
Fixed
- JetStream:
- Fixed validation on
nats.PullHeartbeat()
causing pull heartbeat not being validated against deadline fromnats.Context()
(#1414)
- Fixed validation on
Complete Changes
Release v1.30.0
Changelog
Overview
This release focuses on adding features introduced in [email protected]. 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 onStreamConfig
(#1405) - Setting
FirstSeq
onStreamConfig
(#1405) - Setting
ConsumerLimits
onStreamConfig
(#1405) CreateConsumer
andUpdateConsumer
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 onStreamConfig
(#1405) - Setting
FirstSeq
onStreamConfig
(#1405) - Setting
ConsumerLimits
onStreamConfig
(#1405) - Setting heartbeats in Fetch and FetchBatch in legacy API (#1402)
Complete Changes
Release v1.29.0
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 is now available as part of
- 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)
- Invoke
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:
- ObjectStore:
Changed
- ObjectStore:
- Remove
experimental
notice from object store (#1399)
- Remove
- Core NATS:
- Use default value for
FlusherTimeout
instead of 0 (#1398)
- Use default value for
Fixed
- JetStream:
- 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
Release v1.28.0
Changelog
Overview
This release focuses on a set of changes and improvements in new JetStream API. With this release, JetStream API is out of preview.
Additionally, with this release support for go version < 1.18.0 is dropped, due to usage of any
type in codebase.
Added
- JetStream:
Improved
- Added
dev
andmain
branches ofnats-server
to tests in CI (#1336) - Core NATS:
- Fixed incorrect test case in
parse_test.go
. Thanks @YukiBobier for the contribution (#1334)
- Fixed incorrect test case in
- JetStream:
Changed
- Replace
interface{}
withany
across the codebase (#1332) - JetStream:
Fixed
- JetStream:
- Create consumer when calling
OrderedConsumer()
(#1317) - Unset start time for ordered consumer on reset (#1341)
- Fixed
Next()
blocking indefinitely after callingStop()
. Thanks @mdawar for the contribution (#1344) - Invalid missing heartbeat errors in
Consume()
(#1345) - Fixed
PublishAsync()
blocking published due toPublishAsyncMaxPending
not being reset on reconnect (#1346)
- Create consumer when calling
- Legacy JetStream:
- Fixed
PublishAsync()
blocking published due toPublishAsyncMaxPending
not being reset on reconnect (#1346)
- Fixed
Complete Changes
Release v1.27.1
Changelog
Improved
- JetStream Simplified API:
- Fixed unit from kB to B for
FetchBytes()
injetstream/README.md
. Thanks @fabiant7t for the contribution! (#1329) - Add param names in API interfaces to better document the code (#1316)
- Fixed unit from kB to B for
Fixed
- JetStream Simplified API:
- Object Store:
- Fixed race condition in object store when
nats.Context
is used. Thanks @anthonyjacques20 for the contribution! (#1314)
- Fixed race condition in object store when
- JetStream:
- Fixed creating a consumer with
Durable
not set on server versions prior to 2.9.0 (#1325)
- Fixed creating a consumer with
Complete Changes
Release v1.27.0
Changelog
Overview
This release focuses on improvements to new JetStream API and Service API (micro
) preview functionalities.
Added
- JetStream Simplified API:
StreamNameBySubject()
method for stream discovery based on provided subject (#1292)
Improved
- JetStream Simplified API:
- Simplified lock handling for
Consume()
andMessages()
(#1303)
- Simplified lock handling for
Changed
- JetStream Simplified API:
- [BREAKING CHANGE] Renamed
AddConsumer
toCreateOrUpdateConsumer
. This change is introduced in anticipation for separation of create and update operations innats-server
(#1300) - [BREAKING CHANGE] Change default
AckPolicy
toAckPolicyExplicit
(#1278) - [BREAKING CHANGE] Fixed typo in
PullThresholdBytes
type name (#1300) - [BREAKING CHANGE] Removed push consumer only fields from
ConsumerConfig
(#1300) - [BREAKING CHANGE] Removed
context.Context
fromPublishAsync
andPublishMsgAsync
(#1300)
- [BREAKING CHANGE] Renamed
- Service API (
micro
):- [BREAKING CHANGE] More verbose endpoint
INFO
schema (#1277)- Endpoint metadata was moved from
STATS
response toINFO
response INFO
now returnsendpoints
object, containing subject, name and metatada. This replacessubject
field.
- Endpoint metadata was moved from
- [BREAKING CHANGE] More verbose endpoint
Fixed
- JetStream Simplified API:
- Fixed data race on
ErrNoHeartbeat
. Thanks @alexisvisco for the contibution! (#1291) - Fixed incorrect example in
jetstream/README.md
). Thanks @bojanz for the contribution! (#1295)
- Fixed data race on
- Object Store:
- Fixed leaking goroutines after calling
Put()
andPutBytes()
(#1282)
- Fixed leaking goroutines after calling
- Flaky tests picking the used port for cluster connections (#1284, #1298)
- Division by zero fixes in bechmark tests. Thanks @Zamony fot the contribution! (#1293)
Complete Changes
Release v1.26.0
Changelog
Overview
This release adds beta functionality of JetStream simplified API. The goal of this API is to simplify and streamline stream and consumer management, as well as leverage pull consumers for continuous message retrieval. We encourage you to give it a try and post your feedback!
You can find more details on the new API here
Added
- JetStream Simplified API:
- This new API overhauls whole nats.go JetStream API and will eventually deprecate the legacy JetStream client implementation. For details, visit README.md in
jetstream
directory (https://github.com/nats-io/nats.go/blob/main/jetstream/README.md) (#1273).
- This new API overhauls whole nats.go JetStream API and will eventually deprecate the legacy JetStream client implementation. For details, visit README.md in
- JetStream:
Improved
- Added README.md for
micro
directory (#1271) - Refactored internal handler service monitoring setup in
micro
(#1240) - Added goleak to check for leaking goroutines in tests (#1268)
Changed
- JetStream:
- Service API (
micro
): - Changed compression library for websockets (#1259)
- Reload client TLS certificates and Root CAs on reconnect (#1264)
Fixed
- Object Store
- JetStream:
- Fixed flaky
TestJetStreamConcurrentQueueDurablePushConsumers
test (#1267)
- Fixed flaky
- Fixed leaking goroutines in tests (#1268)
Complete Changes
Release v1.25.0
Changelog
Added
Improved
- Fix
TestJetStreamStreamInfoWithSubjectDetails
test (#1225) - Fix typo in JetStream
Durable()
option comment. Thanks @jlvallelonga fot the contribution (#1229) - Bump nkeys to latest version (#1235)
Changed
- JetStream:
Complete Changes
Release v1.24.0
Changelog
Added
- Core:
- Option to skip host lookup. Thanks to @chen-shmilovich-sysdig for the contribution (#1204)
- JetStream
FetchChan
method to utilize non-blocking pull subscription requests (#1211)
- Service API (
micro
):ContextHandler
helper function which implementsmicro.Handler
and allows passingcontext.Context
to request handler (#1215)
Improved
- Use go 1.19 in
go.mod
and skip using deprecatedrand.Seed
for go version +1.20 (#1209)
Fixed
- JetStream:
- Service API (
micro
):- Avoid panic on schema request when no schemas were given (#1195)
- KV:
Complete Changes
Release v1.23.0
Changelog
Overview
This release focuses on improvements in micro
package, most notably adding a possibility to create a service with multiple endpoints.
Added
- Service API (
micro
):
Changed
- JetStream:
- Optimize
AddConsumer()
performance by not sending JS request if consumer config has not changed (#1185)
- Optimize
- Service API (
micro
):
Improved
- Check whether credentials in
nats.Connect()
are missing before using them (#1181) - Reduce the size of the bufio.Reader for message header parsing. Thanks to @thomas-long-f3 for the contribution (#1187)
- Update go version in
go.mod
to 1.18 and update go version used by Travis (#1182) - Start adopting error wrapping syntax (
%w
) in various errors (#1182) - Added note on disabling reconnect buffer on
nats.ReconnectBufSize()
(#1169) - Fix typos in comments in
micro
package. Thanks to @chenjpu for the contribution (#1171)
Fixed
- JetStream
- Pass opts to
ConsumerInfo
call inAddConsumer()
(#1176) - Use custom inbox prefix in async reply. Thanks to @guyguy333 for the contribution (#1190)
- Pass opts to