Repository navigation
feat: update module github.com/nats-io/nats.go to v1.55.0 - #87
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #87 +/- ##
=======================================
Coverage 54.81% 54.81%
=======================================
Files 25 25
Lines 1609 1609
=======================================
Hits 882 882
Misses 630 630
Partials 97 97 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
renovate
Bot
force-pushed
the
renovate/github.com-nats-io-nats.go-1.x
branch
from
September 18, 2026 22:15
75b0c18 to
81b0edb
Compare
renovate
Bot
force-pushed
the
renovate/github.com-nats-io-nats.go-1.x
branch
from
October 23, 2026 20:25
81b0edb to
04fc47c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.36.0→v1.55.0Release Notes
nats-io/nats.go (github.com/nats-io/nats.go)
v1.55.0Compare Source
Changelog
This is the biggest nats.go release in a long time: 47 changes with more than half of them coming from 18 external contributors - thank you all!
Most of this release is a robustness effort. Nearly 30 bug fixes address deadlocks, goroutine and timer leaks, data races and stalls in reconnect and drain handling, pull and ordered consumers, async publish and service API. It also adds the
FetchMaxBytes()option andConn.RemoteAccount().ADDED
Conn.RemoteAccount()andServerInfo.RemoteAccountexposing the account the client is bound to (#2156)FetchMaxBytes()option to limit both the number of messages and total bytes in a singleFetch()request. Thanks @manenim for the contribution (#2198)StreamInfo.Domain,StreamInfo.Alternates,StreamState.Lost,StreamSourceInfo.ExternalandStreamSourceInfo.Errorin stream info (#2168)ErrStreamMessageExceedsMaximumfor JetStream error code 10054, returned when a message exceeds the stream'sMaxMsgSize. Thanks @matehsan for the contribution (#2110)FIXED
ForceReconnect()called while already reconnecting disablingReconnectWaitand custom reconnect delays, so the client dialed in a tight loop. Thanks @Arsen302 for the contribution and @MokiMeow for the diagnosis and test (#2179)ErrConnectionClosedinstead ofErrDisconnected. Thanks @AshSgDe29071999 for the contribution (#2129)ws://host/nats. Thanks @dannyshafer for the contribution (#2177)Close()duringDrain()flipping the closed connection back toDRAINING_PUBSand flushing on it. Thanks @Kshot3000 for the contribution (#2163)Drain()waiting for the fullDrainTimeoutwhen the connection was closed mid-drain (#2171)IsSystemAccount()reset to false by async INFO updates, such as cluster topology changes or lame duck mode (#2156)Consume()andMessages()deadlocking onStop()orDrain()while buffered messages were still being delivered. Thanks @clwluvw for the contribution (#2165)Messages()iterator goroutines leaking after the connection is closed. Thanks @clwluvw for the contribution (#2166)Consume()ends because the connection was closed. Thanks @clwluvw for the contribution (#2164)Messages()iterator returningErrMsgIteratorClosedinstead of the remaining buffered messages whenNext()raced withDrain()(#2188)StopAfterstalling until the missed heartbeat check (30s by default) after a pull expired. Thanks @huynguyen7 for the contribution (#2208)StopAfterhanging onStop()/Drain(), delivering too many or too few messages, or panicking after a consumer reset. Thanks @clwluvw for the contribution (#2167)Fetch(),Next()andFetchBytes()blocking forever after returningErrOrderedConsumerConcurrentRequests, andFetchNoWait()restarting from the beginning of the stream (#2211)Consume()andMessages()using the 15s pull consumer heartbeat instead of the 5s ordered default, so a stalled consumer was reset after ~30s instead of ~10s. Thanks @arminazimi for the contribution (#2182)PublishAsync()exceedingWithPublishAsyncMaxPending()under concurrent calls. Thanks @ShravanthReddy for the contribution (#2126)Info()andCachedInfo()on streams and consumers. Thanks @vulragrag-star for the contribution (#2152)KeyValueConfig.Sourcesfor several KeyValue buckets carrying the first bucket's subject transform into the next ones, so their reads returnedErrKeyNotFound. Thanks @zhechen-cs for the contribution (#2190)GetFile()leaving trailing bytes of an existing destination file when downloading a shorter object. Thanks @zhechen-cs for the contribution (#2197)Create()andUpdate()on a cross-domain mirrored bucket failing withnats: no response from stream. Thanks @spicysharkco for the contribution (#2203)GetFile()leaving trailing bytes of an existing destination file when downloading a shorter object. Thanks @zhechen-cs for the contribution (#2197)AddService()on a closed connection (#2154)send on closed channelwhen callbacks were queued duringStop()(#2173)ErrorHandler, and only a closed connection stops the service (#2174)Reset()clearing the endpoint queue group reported in stats (#2195)IMPROVED
Maximum Control Line Exceededto the async error handler before closing the connection. Thanks @kave08 for the contribution (#2184)DecodeHeadersMsg. Thanks @0xAozora for the contribution (#2132)Msg.Size()without serializing headers. Thanks @0xAozora for the contribution (#2125)Subscriptionis safe for concurrent use and thatMsgis not reused after delivery. Thanks @kave08 for the contributions (#2183, #2204)Fetch(), ordered consumers and Object StoreWatch()(#2212)Watch()(#2212)MaxAckPendingfor subscriptions that create their own consumer (#2213)Complete Changes
v1.54.0Compare Source
Changelog
This release raises the minimum supported Go version to 1.26 and adds support for nats-server v2.15 stream and consumer info fields.
ADDED
nats.MultipathTCP()option to enable or disable MPTCP for outbound connections (#2145)Conn.ConnectedDomain()to read the JetStream domain advertised by the connected server (#2139)ClusterInfo.Desired,PeerInfo.Peer,PeerInfo.PendingandStreamSourceInfo.Seqin stream and consumer info, reported by nats-server v2.15 (#2144)Nats-Schedule-Rollupheader const andWithScheduleRollup()publish option (#2142)FIXED
DecodeHeadersMsgon inline status tokens shorter than 3 characters. Thanks @nikitha-m for the contribution (#2101)Subscription.sidbetweenapplyNewSIDandremoveSub(#2122)Messages()iterator going silent after a reconnect that completes betweenNext()calls. Thanks @1995parham for the contribution (#2135)IMPROVED
doErrclosure escaping to the heap in async publish reply handling. Thanks @0xAozora for the contribution (#2127)Publisherinterface methods comment. Thanks @sreeram77 for the contribution (#2120)klauspost/compressto v1.20.0 andnkeysto v0.4.16 (#2117, #2146)Complete Changes
v1.53.1Compare Source
Changelog
This is a patch release containing no functional changes.
FIXED
Versionconst and the README install line, which were not updated for v1.53.0 (#2118)Complete Changes
v1.53.0Compare Source
Changelog
ADDED
WithPublishAsyncAckHandleroption for JetStream async publish. Thanks @occamist for the contribution (#2109)AckFlowControlPolicyto legacy API (#2091)micro.WithEndpointMetadataKey. Thanks @joeriddles for the contribution (#2079)FIXED
MsgsTimeoutiterator yielding a spurious(nil, nil)after a timeout. Thanks @sueun-dev and @c-tonneslan for the contributions (#2099, #2093)resetOrderedConsumerwhen resets overlap (#2111)PullSubscribeconsumer create path. Thanks @wyf027 for the contribution (#2088)JSOptAPI prefix across JetStream APIs. Thanks @wyf027 for the contribution (#2087)keyValidandsearchKeyValid. Thanks @c-tonneslan for the contribution (#2076)IMPROVED
Complete Changes
v1.52.0Compare Source
Changelog
This release focuses on 2.14 nats-server features support.
ADDED
StreamConfigwithConsumerfield and addedAckFlowControlPolicy(#2070)FIXED
IMPROVED
Complete Changes
v1.51.0Compare Source
Changelog
ADDED
IsSysAccountfromServerInfo(#2060)FIXED
Consume()when callingStop/DrainfromConsumeErrHandler(#2059)IMPROVED
Complete Changes
v1.50.0Compare Source
Changelog
FIXED
orderedSubscription.Drain()(#2030)OrderedConsumer.Consume()race in handler (#2043)IMPROVED
AccountLimitsfields injetstreampackage (#2041)CHANGED
Complete Changes
v1.49.0Compare Source
Changelog
ADDED
IgnoreDiscoveredServersoption for skipping advertised servers (#2022)Config()method forKeyValueStatus(#2014)FIXED
ConsumerInfo. Thanks @olde-ducke for the contribution (#1987)Putwhen context has no deadline (#2013)IMPROVED
Complete Changes
v1.48.0Compare Source
Changelog
ADDED
FIXED
js.apiRequestWithContext. Thanks @svenfoo for the contribution (#1957)IMPROVED
Complete Changes
v1.47.0Compare Source
Changelog
ADDED
FIXED
IMPROVED
MessagesContext.Next()doc (#1951)Complete Changes
v1.46.1Compare Source
Changelog
FIXED
Complete Changes
v1.46.0Compare Source
Changelog
Overview
This release enables features introduced in nats-server@v2.12.0.
Some features, while enabled in the client by adding relevant configuration, have APIs exposed in synadia-io/orbit.go, namely:
ADDED
ClusterInfo(#1935)AllowAtomicPublishstream configuration option (#1940)PersistModestream config option for configurable stream persistence settings (#1943)AllowMsgSchedulesstream configuration option to enable message scheduling (#1942)Messages.Next()plusFetchcontext support (#1938)IMPROVED
Complete Changes
v1.45.0Compare Source
Changelog
ADDED
WithExpectLastSequenceForSubjectpublish option (#1920)FIXED
SubscriptionClosedevent to prevent race condition (#1914)ReconnectErrHandlerfor initial connection failures withRetryOnFailedConnect(#1915)CreateOrUpdateStreampreserves domain prefix during updates (#1917)IMPROVED
Complete Changes
v1.44.0Compare Source
Changelog
Overview
This PR adds a
PushConsumerimplementation tojetstream, allowing easier migration to new API while maintaining usage of push consumers. For now it only supports the callback-basedConsume(), more consuming options will be added in future releases.ADDED
UserCredentialBytes()Connoption (#1877)PushConsumerimplementation injetstreampackageClientTraceinJetStreamOptions(#1886)WithEndpointPendingLimitsoption (#1899)Error()method toKeyListerandKeyWatcherinterfaces (#1889)FIXED
Consumer.Next()hangs after connection is closed (#1883)JetStreamContextif no deadline is set on ctx (#1909)Keys()andListKeys()returning duplicates (#1884)CHANGED
DefaultSubPendingMsgsLimit(#998)Complete Changes
v1.43.0Compare Source
Changelog
ADDED
nc.LocalAddr, similar tonc.ConnectedAddr(#1877)FIXED
fmt.PrintlnfromService.Stop()(#1880)Complete Changes
v1.42.0Compare Source
Changelog
Overview
This release adds per-key TTL functionality to key-value stores. It adds:
LimitMarkerTTLconfig option to enable automatic tombstone deletion.KeyTTLoption tokv.Create()PurgeTTL()option tokv.Purge()ADDED
Complete Changes
v1.41.2Compare Source
Changelog
ADDED
nc.RemoveStatusListener()method (#1856)FIXED
FetchandFetchBatchmemory leak (#1856)kv.PurgeDeletes()(#1858)Complete Changes
v1.41.1Compare Source
Changelog
FIXED
ObjectStore.Getwhen no deadline is set on ctx (#1850)IMPROVED
golang.org/x/textdependency (#1849)Complete Changes
v1.41.0Compare Source
Changelog
Overview
This release adds consumer priority groups to JetStream, exposing overflow and pinning policies. For more information on consumer priority groups, see ADR-42.
Added
WithDefaultTimeoutoption for JetStream API requests (#1843)Fixed
sub.StatusChangedandnc.StatusChanged(#1841)ForceReconnectto avoid panic on subsequentForceReconnectcalls (#1842, #1846)Changed
Improved
FetchandFetchBatchon reconnect (#1840)OrderedConsumerConfig.InactiveThreshold(#1845)PurgeDeletes(#1839)Complete Changes
v1.40.1Compare Source
Changelog
Overview
This release fixes an issue in legacy JetStream
Subscribewhich did not respect user-set context when creating a consumer.FIXED
js.Subscribe(#1835)Complete Changes
v1.40.0Compare Source
Changelog
Overview
This release focuses on adding support for new features from NATS Server v2.11.0. This includes:
Batch direct get will be released in orbit. Support for consumer priority groups will be added in the next minor release.
Added
ReconnectErrCBfor handling failed reconnect attempts in a callback. Thanks @sschleemilch for the contribution (#1804)Fixed
Consumer.Fetch(#1828)resp.Errorto show NATS error indeleteMsg. Thanks @imariman for the contribution (#1822)Changed
Complete Changes
v1.39.1Compare Source
Changelog
Fixed
ListKeysFilteredfrom returning deleted keys. Thanks @kruegernet for the contribution (#1803)Improved
Complete Changes
v1.39.0Compare Source
Changelog
Overview
This release bumps the minimal go version in
go.modto1.22.Added
PullMaxMessagesWithBytesLimitoption for Consume and Messages (#1789)MetadatatoOrderedConsumerConfig. Thanks @mwain for the contribution (#1737)JetStream.Options()andJetStream.Conn()methods toJetStreaminterface (#1792)ListKeysFilteredfor listing keys with multiple filters. Thanks @somratdutta for the contribution (#1711)Fixed
Consumer.Messages()(#1786)DeleteObjectStore(#1762)Changed
Improved
ConsumeandMessagesoptions (#1770)Complete Changes
v1.38.0Compare Source
Changelog
Added
UserInfoHandlerfor dynamically setting user/password (#1713)PermissionErrOnSubscribeoption, causingSubscribeSyncto returnnats.ErrPermissionViolationonNextMsg()if there was a permission error (#1728)Msgs()method onSubscription, returning an iterator (iter.Seq2[*nats.Msg, error]) for the subscription. This method is only available for go version >=1.23 (#1728)WatchFilteredmethod to watch for updates with multiple filters (#1739)Fixed
PublishAsyncnot closing done and stall channels after failed retries (#1719)Fetch()andNext()after timeout (#1705)MessageBatch(#1743)MessageBatch(#1743)Changed
Improved
kv.Updatemethod. Thanks @fmontorsi-equinix for the contribution (#1727)README.md(#1745)nkeysto v0.4.9 (#1750)Complete Changes
v1.37.0Compare Source
Changelog
Added
CleanupPublishermethod for removing internal JetStream subscription (#1690)ConsumeContext.Closed()method for waiting for consume to be closed/drained (#1691)Fixed
OrderedConsumer(#1686)Fetch()forOrderedConsumer(#1693)FetchandFetchBatchclient timeout to a higher value (#1689)Improved
Deprecated
Complete Changes
Configuration
📅 Schedule: (UTC)
🚦 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 was generated by Mend Renovate. View the repository job log.