Releases: nats-io/nats.rs
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
Release v0.18.0
Overview
This release focuses mainly around fixes of large changes introduces in 0.17.0, but also adds slow consumers support
and improves the header map interface.
Breaking Change
- Add a public convenience interface to header maps by @caspervonb in #310
Added
Changed
- Replace
chrono
withtime
due to RUSTSEC-2020-0159 by @ShellWowza in #309 - Join all connect threads while closing connection by @Jarema in #305
Fixed
- Test server subject matching bug fix by @fdlg in #221
- Fix Pull Subscriber visibility by @Jarema in #313
- Fix missing export subscription modules by @caspervonb in #314
- Check sequence mismatch only for Ordered Consumer by @Jarema in #317
New Contributors
- @ShellWowza made their first contribution in #309
- @fdlg made their first contribution in #221
Full Changelog: v0.17.0...v0.18.0
Release v0.17.0
Overview
This release brings a lot of changes and refactors among which the highlights are:
- A complete rewrite of the JetStream API with a new subscription interface
- Improvements of JetStream internals
- Key-Value Store support
- Object Store support
Breaking Changes
- Introduce a
JetStream
type by @caspervonb in #247 - Move Consumer Management to JetStream by @Jarema in #250
- Re-work JetStream push consumer interface by @caspervonb in #252
- Re-work JetStream pull consumer interface by @Jarema in #302
- Rename create_stream to add_stream by @Jarema in #251
- Change return type of add_consumer to
ConsumerInfo
by @caspervonb in #252
Added
- Add header module by @caspervonb in #260
- Implement key-value store by @caspervonb in #267
- Implement object store by @caspervonb in #269
- Lame duck mode support by @Jarema in #265
- Add domain field to
PubAck
by @caspervonb in #243 - Add support for JetStream publishing by @caspervonb in #248
- Add
error_callback
by @derekcollison in #253 - Add
get_message
to JetStream context by @caspervonb in #267 - Add
get_last_message
to JetStream context by @caspervonb in #267 - Add option
retry_on_failed_connect
by @pozsgaic in #223 - Add support for different .pem contents by @Jarema #280
- Introduce ServerAddress by @MattesWhite in #276
Changed
- Allow for inline header description with spaces by @caspervonb in #241
- Allow setting a jetstream api prefix from a domain by @caspervonb in #244
- Have Client in Message as Option by @Jarema in #258
- Change jetstream log level to debug by @caspervonb #307
- Bump MSRV to 1.53.0
Minor
- Reduce allocations in
Headers::try_from
by @caspervonb in #238 - Improve error handling by @caspervonb in #249
- Some additions.. by @derekcollison in #253
- Bump blocking crate by @Jarema in #255
- Add
sealed
field tojetstream::StreamConfig
by @caspervonb in #256 - Fix unsubscribe method behavior to act as in docs by @Jarema in #301
- Fix license formatting so it is properly detected by Github and add missing license banners in files by @Jarema in #292
- Fix Object read and object_store tests by @stevelr and @Jarema #282
Big Thanks to our contributors: @stevelr @MattesWhite and @pozsgaic!
Full Changelog: v0.16.0...v0.17.0