Skip to content

Release v3.13.0

Latest

Choose a tag to compare

@AdamPayzant AdamPayzant released this 01 Jun 13:40
78981ed

Changelog

Added

  • The name of a connection can now be retrieved with the natsConnection_GetName API by @kozlovic in #946 and #953. This was proposed by @julio77it in #945
  • The connection that created a subscription can now be accessed with natsSubscription_GetConnection by @kozlovic in #954. This was proposed by @julio77it in #947
  • A ThreadStartedHandler callback (and ThreadStartedHandlerClosure) can now be set on natsClientConfig to be invoked when a thread created by the library starts, allowing further per-thread configuration such as CPU affinity, by @kozlovic in #957, resolves #956
  • Clients can now bypass the internal buffer and write directly to the socket with natsConnection_Send, natsConnection_SendMsg, and natsConnection_SendRequest by @kozlovic in #973, resolves #970
  • Clients can now be configured to opt out of aborting subsequent reconnect attempts if server returns the same auth error twice with natsOptions_SetIgnoreAuthErrorAbort by @kozlovic in #974
  • JetStream pubacks can now be configured to use the connection's response muxer instead of creating its own internal subscription with the MuxReplies field in jsOptionsPublishAsync by @kozlovic in #985
  • kvWatchOptions now have Heartbeat and ResumeFromRevision fields by @kozlovic in #989, issue raised by @afigegoznaet in #988
  • Added support for Nats-Marker-Reason on kvOp eval by @afigegoznaet in #994
  • Added support for nats-server 2.12 features:
    • Streams can now be configured to flush asynchronously with the PersistMode field in jsStreamConfig by @AdamPayzant in #961
    • jsClusterInfo now also includes RaftGroup, LeaderSince, SystemAcc, and TrafficAcc fields by @AdamPayzant in #964
    • jsFetchRequest can now be configured with a Priority field for use with Pull Consumer Priority Groups by @AdamPayzant in #965
    • Filtering against wildcard subjects can now be done with ExpectLastSubjectSeqSubject in jsPubOptions by @AdamPayzant in #969
  • Added support for nats-server 2.14 features:
    • Ability to reset a consumer's delivery state without deleting and recreating it via js_ResetConsumer by @AdamPayzant in #992
    • Ability to schedule JetStream messages for future delivery with the Schedule field in jsPubOptions by @AdamPayzant in #991
  • Added support for orbit.c features:
    • AllowBatched stream configuration option to allow fast publish by @AdamPayzant in #993
    • AllowMsgCounter stream configuration option to allow use of counters by @AdamPayzant in #990

Changed

  • TLS is now automatically enabled when a URL with the tls:// scheme is used by @johnweldon in #951

Fixed

  • CRL was loaded but never enabled, fixed by @thierryba in #943, reported in #942
  • Threads could potentially attempt to lock a mutex that failed to initialize by @kozlovic in #952
  • natsSock_ReadLine() could miss the \r\n terminator of the server's initial INFO line when a socket read split the CRLF across two reads, causing the connect to hang until timeout by @kozlovic in #959, reported by @yanyongcheng in #958
  • Non-thread safe rand/srand replaced by internal lcg implementation by @Kirskov in #963
  • Builds did not properly account for absolute paths when generating libnats.pc, fixed by @Kirskov in #966, issue raised by @alexshpilkin in #542
  • Some environment variables were not being properly loaded, fixed by @kozlovic in #972
  • DEV_MODE was not enabling correctly, fixed by @kozlovic in #976
  • nats_CloseAndWait could cause seg fault when trying to access freed lock created by nats_Open, fixed by @hhassoubi-rivianvw and @kozlovic in #979
  • natsConnection_Close could fail to properly flush if data was just written to the socket and the buffer is empty, fixed by @kozlovic in #982
  • JetStream async pull could cause a double free of a message, fixed by @kozlovic in #984
  • Single message would be leaked if kvWatcher_Stop is called, fixed by @tyler92 in #987

Non-code Changes

New Contributors