- #217 Fix thread leak when
asynk::Subscription
is dropped without explicitlyunsubscribe
first.
- Minor debug statement removed that was present in previous release.
- #207 Support ADR-15-style JetStream reply subject
parsing, with several new fields added to the
JetstreamMessageInfo
struct that can be parsed from a message.
- #211
jetstream::ConsumerConfig.ack_wait
andjetstream::PubOpts.ttl
have been changed fromisize
toi64
.
- #199 implemented
asynk::Subscription::try_next
. - #199 implemented conversion traits b/w sync & async Message types.
- #205
Options::tls_client_config
allows users to provide a manually-configuredrustls::ClientConfig
for communicating to the server, for cases where certificates are not available on the filesystem.
- #197 JetStream configuration objects now implement PartialEq and Eq.
- #197 Some JetStream configuration objects have been simplified while more closely matching the Golang JS client semantics.
- #196 minor documentation fix.
- #195 JetStream support is now available without any feature set, and the jetstream feature has been removed.
- #192 the async_nats crate has been merged into the
main nats crate, under the
asynk
module name. - #192 the
jetstream::IntervalTree
type has been made private in anticipation of built-in FIFO (ordered) message processing functionality built on top of different internal structures.
- #190 exposed the last connected server's max_payload configurable with the new Connection::max_payload method.
- #189 ipv6 address parsing support has been added.
- #183 the MSRV bumped to Rust 1.51, which was released on March 25 2021.
- #183 reset client writer to None upon disconnection
- #180 idempotent unsubscription avoids sending multiple UNSUB messages.
- #178 client state has been reorganized to allow reading and writing to make progress independently, preventing issues that were sometimes encountered where the act of creating a subscription would lead to a connection timing out after a slow consumer was detected by the server.
- #177 Add
request_timeout
support for async-nats
- #173
Options::with_static_credentials
adds support for static credential files for use in environments where they are injected into the process by means other than an on-disk file. - #174
IntervalTree
now has the methodsmin
,max
, andgaps
for getting the minimum, maximum, and non-contiguous gaps for the tracked intervals, for use in situations where users may want to implement their own deduplication strategies.
- #172 fix an issue with a newly future-incompatible
usage of the
log
crate's macros in a match arm.
- #170 fix an off-by-one error preventing empty messages with headers from being received.
- #168 properly handle headers whose value contains colon characters.
- #162
Subscription::receiver
has been added to provide access to aSubscription
's underlyingcrossbeam_challel::Receiver
for use inselect!
blocks etc...
- #164
Consumer::process_timeout
properly times out from all branches. - #164
Consumer::pull_opt
now properly checks theConsumer.deliver_subject
.
- #161 When attempting to send a message with headers to a server that does not support headers, an error is now properly returned instead of silently dropping the message.
- Improved error log output and avoid panicking when problems are encountered while parsing the JetStream reply subject.
- JetStream consumers are now better supported
through the
Consumer::process*
methods, which also perform message deduplication backed by an interval tree.
- JetStream consumer and message acknowledgement is now
supported via the
jetstream
feature.
- #150 fixed a bug with no_echo.
- #141 use TCP_NODELAY on the connection to the server.
- #144 support multiple clients in the test server.
- #143 Fix a bug preventing nkey authentication.
- #140 Optimize NATS protocol parsing.
- #136 Workaround: skip native certificates that can't be loaded.
- #130, #132 the async client has been split into its own crate, async-nats
- #126 Fix port signedness issue on ServerInfo which prevented connecting to servers on ports over i16::MAX.
- #125 Remove Sync requirement for the handler function passed to Subscription::with_handler.
- #124 Fix regex error when parsing creds due to missing
the
unicode-perl
feature flag on the regex crate.
- Add
Options::client_cert()
.
- Flush outstanding messages when
Connection
is dropped. - Call callbacks configured by
Options
. - Shutdown only when the last
Connection
is dropped.
- Remove
async-dup
dependency. - Update dependencies, notably
nkeys
to v0.0.11.
- Fix a bug due to which TLS authentication was not working.
- Shutdown the client thread when
Connection
is dropped.
- Add
asynk::Message::respond()
. - Add
Options::with_nkey()
.
- Update the
smol
dependency.
- Remove
crossbeam-channel
from the public API.
- Remove the
MutexGuard
held across await points insidecleanup_subscriptions()
to allow futures returned by async methods to implementSend
.
- Expose the
asynk
module with the async client API.
- Implement
Subscription::close
andSubscription::unsubscribe
correctly, which would previously do nothing.
- Fix a deadlock in
Subscription
when concurrently receiving the next message and draining.
- Add
--auth-token
flag to thenats-box
example.
- Support has been added for NATS Headers
via the
Connection::publish_with_reply_or_headers
method.
- The underlying TLS implementation has been switched
from native-tls to rustls. The previously exported
TLS functionality has been removed, and now you can
supply certificates with the
Options::add_root_certificate
method.
- An experimental async
Connection
is now available to adventurous explorers by callingOptions::connect_async
.
ConnectionOptions
has been renamedOptions
.- The minimum supported Rust version (MSRV) is now 1.40.0.
- #60
ConnectionOptions
construction has been simplified, and thewith_user_pass
,with_token
, andwith_credentials
methods have been changed to being constructors for the type, rather than producing intermediate states.
- #57 The
drain
method has been added to theConnection
andSubscription
structs.
- #36
Connection::close
is now infallible and has no return value - #36 The redundant
Subscription::close
has been removed. The same functionality exists inSubscription::unsubscribe
. - bumped the MSRV to 1.39.0 in anticipation of possible async support.
- The minimum supported Rust version (MSRV) is now made explicit, and lowered to version 1.37.0 from 1.42.0. Crate version 0.3.1 has been yanked due to it having silently broken older Rust versions than 1.42.0.
- #19 TLS support has been added.
- #16 Implement reconnection logic.
- #16 Buffer outbound data when in a disconnected state.
- #16 Learn about new servers using the received INFO block.
- #16 Callback functions may be provided via the new
Options::set_disconnect_callback
andOptions::set_reconnect_callback
which will be executed when the connection to a server has been terminated or when a new connection has been established afterward.
- #11
Connection::new
has been renamedOptions::new
. - #13 The various iterators have been replaced with concrete
implementations:
Iter
,IntoIter
,TimeoutIter
which ensure that the backingSubscription
is not closed while they are in use.