Repository navigation
Releases
v3.4.0
What's Changed
In addition to fixes and general enhancements this release adds support for exciting nats-server 2.14 JetStream features.
[CORE]
- FIX: protocol integer parsing rejects non-sensical values (#373) by @aricart
- FEAT:
Symbol.asyncDisposeon connections/subscriptions —usingauto-closes on scope exit (#396) by @aricart - FIX: inboxes match go client
_INBOX.<nuid>.<token>(was_INBOX.<nuid>.<nuid>); nuids now base62 see nuid.js (#398) by @aricart - FEAT:
getServers()/setServers()— clients can list known servers and switch clusters (#400) by @aricart - FEAT:
reconnectToServerconnection option — pick next server and dial delay during reconnect (#403) by @aricart
[JETSTREAM]
- FEAT: message schedules — messages fire on cron — requires nats-server 2.14+ (#381) by @aricart
- FEAT:
resetConsumer()/reset()onJetStreamManager— reset durable consumer ack sequence; enables order consumers backed by durables — requires nats-server 2.14+ (#391) by @aricart - FIX: push consumers stuck on heartbeat (#375) by @aricart
- FEAT:
JetStreamAccountStats/JetStreamApiStats— addreserved_memory,reserved_storage,inflight;max_bytes_requiredis boolean; tiers use dynamic record (#376) by @aricart - FEAT: fast ingest — exposed via orbit fastingest — requires nats-server 2.14+ (#379) by @aricart
- FEAT: configure stream mirror/source consumers —
StreamSource.consumer,StreamConsumerSource,AckPolicy.FlowControl— requires nats-server 2.14+ (#399) by @aricart
[KV]
[OBJ]
- FEAT: faster entry add via fast ingest (requires nats-server 2.14+); native SHA-256 when available. Note that the fast ingest integration requires a hidden
allowBatched: trueto be specified as it is still experimental (#394, #397) by @aricart
[DOCS]
- FIX: esbuild build instructions (#378) by @AntoninPOLY
- Examples: websocket usage in modern frameworks (#392) by @aricart
New Contributors
- @Bre77 — first contribution in #367
- @Jarema — first contribution in #369
- @AntoninPOLY — first contribution in #378
Full Changelog: v3.3.1...v3.4.0
v3.4.0-4
v3.4.0-4
v3.4.0-2
v3.4.0-1
v3.4.0-0
v3.3.1
What's Changed
ObjectStore
- Fixes a check on the validation of the digest. This is an important integrity fix.
All Changes
- chore(workflows): remove unused
NODE_AUTH_TOKENenvironment variable from NPM publish steps by @aricart in #356 - chore(workflows): add
workflow_dispatchtrigger to test workflow by @aricart in #361 - fix shadowed digest which was creating self-equals. by @aricart in #364
- prepare for release by @aricart in #365
Full Changelog: v3.3.0...v3.3.1
v3.3.0
What's Changed
Core
- Subject validation: Validate subjects for illegal whitespace characters (#348)
JetStream
- Direct API "no results": Handle "no results" status in direct APIs (#336)
- Stream sequence errors: Handle additional JetStream API error for stream sequence (#353)
- deleteMessage() change: Stream#deleteMessage() API to default to erase (#334)
WebSocket
- Custom WsSocketFactory: Expose ability to create WS connections by specifying a WsSocketFactory in WsConnectionOptions (#332)
TypeScript
- Export fix: Fixed exports so QueuedIterator exports correctly to JetStream (#351)
Documentation
All changes
- feat: expose in public api ability to create a ws connection by specifying a WsSocketFactory, and referencing it in WsConnectionOptions. by @aricart in #332
- fix(jestream): fixed the Stream#deleteMessage() api to default erase by @aricart in #334
- chore(workflows): add parallel support and Coveralls completion step by @aricart in #337
- feat(jetstream): handle "no results" status in direct APIs by @aricart in #336
- feat(tests): increase coverage by @aricart in #338
- feat(core): add reconnect logic for specifying servers by @aricart in #339
- feat(core): revert reconnect logic for specifying servers by @aricart in #340
- docs: add TypeScript compiler configuration guide for Node by @aricart in #341
- feat(tests): added jetstream/jetstreamManager context property by @aricart in #342
- feat(core): validate subject for illegal whitespace characters by @aricart in #348
- fix(typescript): fixes to the exports so QueuedIterator exports correctly to JetStream by @aricart in #351
- feat(jetstream,kv): handle additional JetStream API error for stream seq by @aricart in #353
- fix(core): improve validation for
headersarguments and update test by @aricart in #350 - update docs by @aricart in #333
- feat(core): normalize non-array values in
MsgHdrs.fromRecordby @aricart in #352 - test(flapper): ignore sanitizers on cluster test by @aricart in #354
- refactor: bump dependencies by @aricart in #355
Full Changelog: v3.2.0...v3.3.0
v3.2.0
What's Changed
This release increases stability and adds support for a number of exciting nats-server 2.12 features
JetStream
- feat: Batch publishing support. JetStream now allows you to publish a number of messages atomically in a batch. #322
- feat: add
allow_msg_counterto stream configurations. This features enables the use of streams as a counter. For an incubating API see orbit counters #317 - feat: add Raft group and traffic account metadata to cluster types #319
- feat: Support for message scheduling by setting the streams
allow_msg_schedulesand usingScheduleOptionsin theJetStreamPublishOptions. #321 - feat: Added support for
Prioritizedpolicy for pull consumers #323 - feat(jetstream): Add support to configure
PersistModestream configurations #327 - feat: It is now possible to remove stream
mirrorsvia update API #320 - fix: NATS server 2.12 changed how pending messages were reported when accessed via the Direct API. #314
Key-Value Store
- feat(kv): introduce key and payload codecs for customizable key-value encoding and decoding #305
- feat(kv): TTL support entries #306
Object Store
- fix:replicas api option was leaking into object store configuration where the only supported value, which was set correctly, is num_replicas. Servers 2.12+ which validate configurations would reject the operation if this value was set. #315
Node Transport
- fix: changed DNS resolution to use dns.lookup() instead of dns.resolveX() as this allows overrides such as /etc/hosts to work properly #310
- fix: ensure proper cleanup of socket in discard() method. In some container setups under Windows. #309
Full Changelog: v3.1.0...v3.2.0
v3.1.0
What's Changed
This release introduces features to Core (tracing), JetStream (per-message ttls, pinned consumers, subject-based sequence constraints) and KV (per-message ttls, timeout support for put/update operations) and improve the reliability of the client.
Core
- feat(core): tracing - Introduced
TraceOptionsinPublishOptions,RequestOptions, andRequestManyOptionsto enable message tracing with NATS. Trace messages are sent to atraceDestinationsubject and optionally flagged astraceOnlyto avoid delivery and generate trace data only by @aricart in #265 - fix(core): use InstanceType for TE and TD type annotations by @Roseidon in #298
- fix(core): status iterator can now yield a
closeevent signaling that the client closed by @aricart in #277 - refactor(core): remove redundant type assertions in Subscription by @aricart in #293
JetStream
- feat(kv,jetstream)Add support for per-message TTLs in KV and JetStream by @aricart in #281
- feat(jetstream): pinned consumers by @aricart in #263
- feat(jetstream): support for pedantic mode in consumer creation by @aricart in #264 and #275
- feat(js): add support for subject-based sequence constraints. These allow constraints for sequences to be applied to a different using a different subject, simplifying constraints for hierarchical subjects by @aricart in #287
- fix(js): improve handling of 409 status and
max_bytesedge cases by @aricart in #286 - fix(js): update tests to reflect changes in 2.11.6 behavior for
max_waitingwhere 409 for exceededmax_waitingerrors are not sent to the client when requests have an expires. This means that consumers will rely on heartbeats to pull again by @aricart in #291 - fix(js): improved the typings for
DirectBatchOptionstypes by @aricart in #289 - tests(js): Add test and logic to bypass JetStream checks for bind-only by @aricart in #272
- tests(js): Add timeout tests for JetStream clients and managers by @aricart in #274
KV
- feat(kv,jetstream)Add support for per-message TTLs in KV and JetStream by @aricart in #281
- feat(kv): timeout support for put and update operations by @aricart in #273
Obj
- Update types.ts: clarify timeout in ObjectStorePutOpts by @alexbozhenko in #261
Services
-
fix(service): stop iterators when the subscription closes. by @aricart in #288
-
Update README.md by @alexbozhenko in #262
Transport-Node
- Introduced
NodeTlsOptionsandNodeConnectionOptionstypes to handle Node.js-specific TLS configurations, likerejectUnauthorized. Updatedconnect, for transport-node, and related logic to support these new options by @aricart in #260
Docs
- doc: add extra link to runtimes to make it more discoverable by @alexbozhenko in #185
- Fix typo in a comment by @williamstein in #266
- Update URL paths for full JetStream examples by @maxdemaio in #267
- fix(doc): runtime was describing
Svc(the original name of the type) instead ofSvcmby @aricart in #276 - fix(doc): fixed the deno installation command by @LeUKi in #279
- docs: added new types exposed by the current api by @aricart in #278
- updated docs by @aricart in #280
CI
- chore: remove GitHub action workflows and update package versions by @aricart in #290
- chore: add utility for managing module versions by @aricart in #295
New Contributors
- @williamstein made their first contribution in #266
- @maxdemaio made their first contribution in #267
- @LeUKi made their first contribution in #279
- @Roseidon made their first contribution in #298
Full Changelog: v3.0.2...v3.1.0