Release v3.3.0
Changelog
The KeyValue APIs are still considered EXPERIMENTAL and we reserve the right to change them (based on usage and community feedback) without necessarily bumping the major version.
Added
- Build:
- Allow option to statically link OpenSSL libraries (see README.md for details). Thanks to @xiaoxiyouran for the suggestion (#491)
BUILD_INTERFACE
totarget_include_directories
. Thanks to @joejustesen for the contribution (#496)- List of known package managers. Thanks to @Jaegermeiste for the suggestion (#534)
- JetStream:
js_UpdateConsumer()
to be able to update a consumer (#515)- jsConsumerConfig
fields:
MaxRequestBatch,
MaxRequestExpiresfor pull options, and
InactiveThreshold` for ephemerals (#515, #518) natsMsg_NakWithDelay()
to ask the server to redeliver this message after the given delay (#516)BackOff
andBackOffLen
fields injsConsumerConfig
structure to define the redelivery timeline for a message (#516)SubjectsFilter
injsOptions
that gives the ability to get the list of subjects with fieldSubjects
(of a new typejsStreamStateSubjects
) in a returnedjsStreamInfo
'sState
field (#517)NumSubjects
injsStreamState
that indicates the number of distinct subjects in a given stream (#517)
- KeyValue:
kvStore_GetRevision()
to be able to get a key at a specific revision. ReturnsNATS_NOT_FOUND
if no entry exists for this key at this revision (#522)
- Options:
natsOptions_SetCustomInboxPrefix()
to be able to set a custom inbox prefix (#512)
Improved
- Crypto:
- Effectively zeroing memory content. Thanks to @paoloteti for the contribution (#501)
Changed
- JetStream:
- KeyValue:
kvStore_Purge()
now accepts a pointer (possiblyNULL
) to the new structurekvPurgeOptions
to configure how long to wait for the operation to complete. TheTimeout
field would have to be set (#524)kvStore_PurgeDeletes()
now accepts a pointer (possiblyNULL
) to the new structurekvPurgeOptions
. The API will now, by default, keep the markers that are less than 30 minutes old. This can be changed with the fieldDeleteMarkersOlderThan
of the newkvPurgeOptions
structure (#524)js_CreateKeyValue()
will update the underlying's stream discard policy if connecting to a server v2.7.2+. The discard policy starting at this release should be discard "new" instead of "old" (#535)
- TLS:
natsOptions_SetCertificatesChain()
is no longer limited to RSA key. Thanks to @thierryba for the suggestion (#527)
Fixed
- Build:
- GCC warning on format strings. Thanks to @paoloteti for the contribution (#497)
- CMake files install path. Thanks to @linuxmaniac for the contribution (#525)
- Documentation:
- Field
Consumer
in thejsSubOptions
structure. Thanks to @Martin-Robinson-Mar-1 for the report (#520)
- Field
- JetStream:
- KeyValue:
- Support for JetStream prefix which is required for cross-account proper functionality (#510)
- NUID:
- Wrong object passed to
sizeof
when doing amemset
. Thanks to @paoloteti for the contribution (#505)
- Wrong object passed to
- Code cleanup. Thanks to @yuchenlin and @ paoloteti for the contributions (#507, #508)
- Connection fails if URL is missing port. Thanks to @BryceCao for the report (#531)