Releases: nats-io/nats.rs
async-nats v0.17.0
Overview
This release focuses on two main things:
- Refactor of JetStream API
- Fix of slow connect (thanks @brooksmtownsend for reporting this!)
The changes in JetStream API make usage of builder more intuitive and seamless.
Before, you had to call
// before changes
let messages = consumer.stream().await?;
// or use a shortcut
let messages = consumer.messages().await?;
// after changes
let messages = consumer.stream().messages().await?;
// or with options
let messages = consumer.stream().max_bytes_per_bytes(1024).messages().await?;
Changed
- Rename push consumer
Stream
iterator toMessages
by @caspervonb in #566 - Add pull builder for Fetch and Batch by @Jarema in #565
Fixed
Other
- Fix license headers by @Jarema in #564
- Add missing module docs headers by @Jarema in #563
- Remove fault injection run from workflow by @caspervonb in #567
Full Changelog: async-nats/v0.16.0...async-nats/v0.17.0
async-nats/v0.16.0, nats/v0.22.0
async-nats. v0.16.0
This release features a lot of improvements and additions to JetStream
API and adds Push Consumer
.
Added
- Add
query_account
tojetstream::Context
by @caspervonb in #528 - Add streams to push consumers by @caspervonb in #527
- Add no_echo option by @Jarema in #560
- Add
jetstream::Stream::get_raw_message
by @caspervonb in #484 - Add Pull Consumer builder by @Jarema in #541
Changed
- Allow unknown directives to be skipped when parsing by @caspervonb in #514
- Narrow error type returned from client publishing by @caspervonb in #525
- Change
create_consumer
to returnConsumer
by @Jarema in #544 - Switch webpki to rustls-native-certs by @Jarema in #558
- Normalize error type used in subscribe methods by @caspervonb in #524
- Optimize
jetstream::consumer::pull::Consumer::stream
method. by @Jarema in #529 - Make
deliver_subject
required forpush::Config
by @caspervonb in #531
Fixed
- Handle missing error cases in Stream by @Jarema in #542
- Handle connecting to ipv6 addresses correctly by @jszwedko in #386
Other
- Move
Client
into its own source file by @caspervonb in #523 - Extract
jetstream::Message
into its own module by @caspervonb in #534 - Normalize introduction example by @caspervonb in #540
- Fix documentation links by @Jarema in #547
- Add more documentation to Pull Consumer by @Jarema in #546
- Add Push Consumer stream docs by @Jarema in #559
- Fix ack test race by @Jarema in #555
- Add Message and Headers docs by @Jarema in #548
- Remove trace and debug from nats-server wrapper by @Jarema in #550
nats v0.22.0
This is a minor release for the nats
client with one fix and several documentation improvements.
What's changed
- Handle connecting to ipv6 addresses correctly by @jszwedko in #386
- Use correct flush_timeout operation in doc test by @krady21 in #556
- Fix typo in jetstream/pull_subscription.rs by @bbigras in #521
New Contributors
- @bbigras made their first contribution in #521
- @jszwedko made their first contribution in #386
- @krady21 made their first contribution in #556
Huge thanks to all contributors. Your help, feedback and insights allows us to drive this library with confidence and speed!
Full Changelog: async-nats/v0.15.0...async-nats/v0.16.0
async-nats 0.15.0 with JetStream, nats 0.21.0
Overview
This release is the first JetStream
🍾 feature set for async-nats
!
It includes:
- New simplified JetStream API approach
- JetStream Publish
- Streams management
- Consumers Management
- Pull Consumers implementation
- Ack's
This is an experimental release of JetStream (simplified) API. It may change, and it may have bugs. We appreciate any feedback and contributions to help it reach maturity soon!
For nats
client, authentication with token
was added by @paulgb
async-nats
Added
- Add JetStream types and basics by @Jarema in #457
- Add get stream by @Jarema in #458
- Add jetstream stream delete and stream update by @Jarema in #459
- Add
async_nats::jetstream::Context::publish
by @caspervonb in #460 - Add get_or_create JetStream management API by @Jarema in #467
- Add domain and prefix by @Jarema in #490
- Add error codes to
Response::Error
variant by @caspervonb in #496 - Add JetStream ACK by @Jarema in #515
- Add convinience methods to Consumer management by @Jarema in #481
- Add Pull Consumer by @Jarema in #479
- Add create consumer by @Jarema in #471
- Add Consumer::info and Consumer::cached_info by @Jarema in #510
- Introduce a
StatusCode
type to represent statuses by @caspervonb in #474 - Add example for multiple pub/subs in tasks by @Jarema in #453
- Implement jetstream requests by @caspervonb in #435
- Add
async_nats::jetstream::Context::publish_with_headers
by @caspervonb in #462 - Implement
From<jetstream::Message>
forMessage
by @caspervonb in #512 - Add get_or_create_consumer and delete_consumer by @Jarema in #475
- Have No async-stream dependant implementation for Pull Consumers by @caspervonb in #499
Changed
- Do not flush in write calls by @caspervonb in #423
- Only retain non-closed subscriptions on reconnect by @caspervonb in #454
Fixed
- Fix off by one error that can occur parsing "HMSG" by @caspervonb in #513
- Removed attempt to connect to server info host when TLS is enabled by @brooksmtownsend in #500
nats
Added
New Contributors
- @brooksmtownsend made their first contribution in #500
- @paulgb made their first contribution in #506
Thanks to all contributors! Your work is very appreciated!
Full Changelog: async-nats/v0.14.0...async-nats/v0.15.0
async-nats/v0.14.0
Overview
This release contains a set of internal codebase behavior improvements, missing elements for JetStream features found out while working on it and some user-facing features.
Added
- Add no responders handling by @Jarema in #450
- Add client jwt authentication by @stevelr in #433
- Add lame duck mode support by @Jarema in #438
- Add slow consumers by @Jarema in #444
- Add tracking maximum number of pending pings by @caspervonb #419
Changed
Client
doesn't need to be mutable self by @stevelr in #434- Make send buffer configurable by @Jarema in #437
Thanks, @stevelr for your contributions!
Full Changelog: nats/v0.13.0...async-nats/v0.14.0
nats/v0.20.1
Overview
A patch release fixing stack overflow happening when there was kv watcher for a key that did not change for a long time.
Fixed
- Remove recursive calls by @segfaultdoc in #448
New Contributors
- @segfaultdoc made their first contribution in #448
Full Changelog: nats/v0.20.0...nats/v0.20.1
Release nats/v0.20.0
Overview
A minor sync client release adding requests with timeouts and headers.
Added
Full Changelog: nats/v0.19.1...nats/v0.20.0
Release async-nats beta v0.13.0
Overview
This time around it's just async-nats
Client release.
Its most important part is headers support which enables work around JetStream that first PRs should show up in next release.
Added
- Add Auth - username/password & token by @Jarema in #408
- Support sending and receiving messages with headers by @caspervonb in #402
- Add async server errors callbacks by @Jarema in #397
- Discover additional servers via INFO by @caspervonb in #403
- Resolve socket addresses during connect by @caspervonb in #403
Changed
- Wait between reconnection attempts by @caspervonb in #407
- Limit connection attempts by @caspervonb in #400
Other
Full Changelog: async-nats/v0.12.0...async-nats/v0.13.0
Release async-nats beta v0.12.0, nats v0.19.1
Overview
This is a double release.
Most work has been done around the async-nats
client.
nats
client got a fix around Key Value.
async-nats v0.12.0
This release adds a few features accompanied by some architecture overhauls in preparation for JetStream support and good maintainability of the codebase.
Added
- Add more examples and docs by @Jarema in #372
- Add unsubscribe by @Jarema in #363
- Add unsubscribe after by @Jarema in #385
- Add queue subscriber and unit test by @stevelr in #388
- Implement reconnect by @caspervonb in #382
Other
- Fix test linter warnings by @caspervonb in #379
- Fix tests failing with nats-server 2.8.0 by @Jarema in #380
- Use local server for documentation tests by @caspervonb in #377
- Improve workflow caching by @caspervonb in #381
- Fix typo in README.md by @mgrachev in #384
- Internal Architecture overhaul by @caspervonb and @Jarema
nats v0.19.1
Only one fix around this time, as most work is focused around the async client.
Fixed
- Fix KV issues when JS domain is set by @thomastaylor312 in #387
Contributors
Big thanks to all contributors! Your input is invaluable!
Full Changelog: async-nats/v0.11.0...async-nats/v0.12.0
Release async-nats beta v0.11.0, nats 0.19.0
Overview
This is a double release.
First and foremost, the new async-nats
Crate become available, as a bleeding edge beta release.
Secondly, a minor nats
crate.
Please also note that the repository has been reorganized into a workspace
, with the nats
directory being the old synchronous NATS Crate and async-nats
being the new one.
New async-client v0.11.0
This was in the works for quite some time, focused on having a performant, easy-to both use and maintain, idiomatic async Rust NATS client. This is a bleeding-edge beta release to bring some visibility, get your feedback and enable transparency and contributions.
The versioning starts from v0.11.0, as the crate was used a long time ago by NATS.io org for some former work around the async client.
What it already does:
- fully native
tokio
implementation async-std
tokio
compact mode working out of the box without performance penalty- Core NATS Protocol support
- TLS with and without client auth
- publish
- subscribe
- request/response
- Clonable Client
- subscriptions as streams
What is missing (Core NATS)
- authorization via
Options
- Errors (those sent by the server) callbacks/streams
- reconnections
- no responders handling
- lame duck mode
Next steps
In the following days, all missing features will be added, and work on Jetstream support will initiate.
Thanks
Discussions around the architecture of the async client were long and fruitful. We would like to thank you all for that efforts. Especially those participating in #298 discussion, @stevelr and @MattesWhite.
nats client release v0.19.0
Changed
- Bump nuid dependency to
0.3.1
by @mfelsche in #325 - Adapt discard policy according to server version by @Jarema in #327
- Link to asynk module instead of async-nats by @aditsachde in #331
- Remove
Features
section from Readme.md by @Jarema in #335 - upgrade itoa, nkeys, parking_lot, regex by @attila-lin in #330
Fixed
- Fix a couple of minor things by @caspervonb in #338
- Fix clippy warning by @caspervonb in #361
New Contributors
- @mfelsche made their first contribution in #325
- @aditsachde made their first contribution in #331
- @attila-lin made their first contribution in #330
Full Changelog: v0.18.1...async-nats/v0.11.0
Release v0.18.1
Overview
A patch release fixing long durations until close()
returned. It was introduced in the graceful shutdown of client connection threads in v0.18.0.
Dropping NATS connection was not affected.
Fixed
- Fix slow connection closing by @Jarema in #319
- Fix close() hang after js.subscribe() is called by @Jarema #321
- Fix close() hang after Push Consumer subsription edge case by @Jarema #323
Minor
Full Changelog: v0.18.0...v0.18.1