async-nats
A async Rust NATS client
0.50.0
46M downloads/mo
#1292 most downloaded on crates.io
nats-io/nats.rs
What this package is like to depend on
Last release 1 months ago
20 Jul 2026
Ships fairly regularly
a new release about every 5 weeks
Most releases are documented
notes for 47 of 70 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
71 releases · first in 2020
12 releases in the last 12 months
see the full history below
Release timeline
71 releases · Jun 2020 to Jul 2026Releases
latest 60 of 71-
0.50.020 Jul 2026Release notes
Open source →Overview
This release allows for on-demand swap between
chronoandtimecrates.What's Changed
- Add chrono as alternative to time crate by @Jarema in #1595
- Use new start method for retry start in nats-server crate by @Jarema in #1603
- Fix account info deser failure on servers with tiered jetstream by @xanderio in #1604
Chrono vs Time
Enabling
chronoanywhere in the
dependency graph selects the chrono backend for the whole build (Cargo feature unification).New Contributors
Full Changelog: async-nats/v0.49.1...async-nats/v0.50.0
Release notes
Open source →Overview
This release allows for on-demand swap between
chronoandtimecrates.What's Changed
- Add chrono as alternative to time crate by @Jarema in https://github.com/nats-io/nats.rs/pull/1595
- Use new start method for retry start in nats-server crate by @Jarema in https://github.com/nats-io/nats.rs/pull/1603
- Fix account info deser failure on servers with tiered jetstream by @xanderio in https://github.com/nats-io/nats.rs/pull/1604
Chrono vs Time
Enabling
chronoanywhere in the dependency graph selects the chrono backend for the whole build (Cargo feature unification).New Contributors
- @xanderio made their first contribution in https://github.com/nats-io/nats.rs/pull/1604
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.49.1...async-nats/v0.50.0
-
0.49.104 Jun 2026Release notes
Open source →Overview
Release focusing on fixing behaviour around server connectivity.
What's Changed
- Fix ping interval reset by @Jarema in #1594
- Fix recreating ordered consumer on server restart by @Jarema in #1599
Full Changelog: async-nats/v0.49.0...async-nats/v0.49.1
Release notes
Open source →Overview
Release focusing on fixing behaviour around server connectivity.
What's Changed
- Fix ping interval reset by @Jarema in https://github.com/nats-io/nats.rs/pull/1594
- Fix recreating ordered consumer on server restart by @Jarema in https://github.com/nats-io/nats.rs/pull/1599
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.49.0...async-nats/v0.49.1
-
0.49.025 May 2026Release notes
Open source →Overview
This is a small release adding missing client-side max-payload validations for some methods.
It is a minor release as it adds new error kind variants for relevant calls.What's Changed
- Add TryFrom impls for HeaderName by @yordis in #1587
- Add max payload validation where it was missing by @Jarema in #1590
New Contributors
Full Changelog: async-nats/v0.48.0...async-nats/v0.49.0
Release notes
Open source →Overview
This is a small release adding missing client-side max-payload validations for some methods. It is a minor release as it adds new error kind variants for relevant calls.
What's Changed
- Add TryFrom impls for HeaderName by @yordis in https://github.com/nats-io/nats.rs/pull/1587
- Add max payload validation where it was missing by @Jarema in https://github.com/nats-io/nats.rs/pull/1590
New Contributors
- @scottf made their first contribution in https://github.com/nats-io/nats.rs/pull/1579
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.48.0...async-nats/v0.49.0
-
0.48.007 May 2026Release notes
Open source →This release focuses on 2.14 nats-server features support.
Added
- Add recent jetstream error codes by @Jarema in #1564
- Add server pool callback by @Jarema in #1559
- Add Source.consumer for durable sourcing by @Jarema in #1581
- Add AckPolicy::FlowControl by @Jarema in #1581
- Add Consumer Reset API by @Jarema in #1581
- Add 2.14 schedule, batch, and rollup header constants by @Jarema in #1581
- Add PublishAck batch_id and batch_size fields by @Jarema in #1581
- Add
try_server_infoandmax_payloadmethods by @yordis in #1567
Fixed
- Fix typo in create_or_update_key_value example by @ayymart in #1569
- Fix linter warning by @Jarema in #1570
- Preserve unsubscribe_after limit across reconnects by @MattPatchava in #1560
- Fix panic on reading non-utf8 data by @Jarema in #1573
Changed
- Bump rand by @Jarema in #1566
- Bump to thiserror v2 by @aumetra in #1571
- Orbit docs by @Jarema in #1580
- Cover remaining 2.14 server error codes and predefined cron schedules by @Jarema in #1581
New Contributors
- @ayymart made their first contribution in #1569
- @aumetra made their first contribution in #1571
- @yordis made their first contribution in #1567
Full Changelog: async-nats/v0.47.0...async-nats/v0.48.0
v0.47.0
Release notes
Open source →Added
- Add recent jetstream error codes by @Jarema in https://github.com/nats-io/nats.rs/pull/1564
- Add server pool callback by @Jarema in https://github.com/nats-io/nats.rs/pull/1559
- Add Source.consumer for durable sourcing by @Jarema in https://github.com/nats-io/nats.rs/pull/1581
- Add AckPolicy::FlowControl by @Jarema in https://github.com/nats-io/nats.rs/pull/1581
- Add Consumer Reset API by @Jarema in https://github.com/nats-io/nats.rs/pull/1581
- Add 2.14 schedule, batch, and rollup header constants by @Jarema in https://github.com/nats-io/nats.rs/pull/1581
- Add PublishAck batch_id and batch_size fields by @Jarema in https://github.com/nats-io/nats.rs/pull/1581
- Add
try_server_infoandmax_payloadmethods by @yordis in https://github.com/nats-io/nats.rs/pull/1567
Fixed
- Fix typo in create_or_update_key_value example by @ayymart in https://github.com/nats-io/nats.rs/pull/1569
- Fix linter warning by @Jarema in https://github.com/nats-io/nats.rs/pull/1570
- Preserve unsubscribe_after limit across reconnects by @MattPatchava in https://github.com/nats-io/nats.rs/pull/1560
- Fix panic on reading non-utf8 data by @Jarema in https://github.com/nats-io/nats.rs/pull/1573
Changed
- Bump rand by @Jarema in https://github.com/nats-io/nats.rs/pull/1566
- Bump to thiserror v2 by @aumetra in https://github.com/nats-io/nats.rs/pull/1571
- Orbit docs by @Jarema in https://github.com/nats-io/nats.rs/pull/1580
- Cover remaining 2.14 server error codes and predefined cron schedules by @Jarema in https://github.com/nats-io/nats.rs/pull/1581
New Contributors
- @ayymart made their first contribution in https://github.com/nats-io/nats.rs/pull/1569
- @aumetra made their first contribution in https://github.com/nats-io/nats.rs/pull/1571
- @yordis made their first contribution in https://github.com/nats-io/nats.rs/pull/1567
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.47.0...async-nats/v0.48.0
-
0.47.031 Mar 2026Release notes
Open source →This release adds subject validation (with opt-out possibility) and wraps while connect attempt in timeout, making it more robust.
Added
- Add Subject Validation by @Jarema in #1525
- Add respond_with_headers method to handle responses with custom headers by @giddyos in #1554
- Add local_address option to bind client to a specific local IP by @wallyqs in #1539
- Implement Clone for ConnectOptions by @MattPatchava in #1552
Fixed
- Fix invalid consumer rate limit json by @Totodore in #1536
- Return error instead of panic when reply subject is empty by @liamkinne in #1514
- Use proper doc comments by @Xaeroxe in #1543
- Fix connection_timeout to cover full NATS handshake by @rahsonaw in #1544
Changed
- Update rustls-native-certs from 0.7 to 0.8 by @FreeMasen in #1507
- Remove
once_celland use std::sync::LazyLock instead by @Jarema in #1534 - Bump bytes crate by @Jarema in #1540
- Bump msrv by @Jarema in #1509
- Update rustls-webpki to 0.103.10 by @JohnMoon-Voyager in #1550
- Update dictionary by @Jarema in #1556
New Contributors
- @FreeMasen made their first contribution in #1507
- @Xaeroxe made their first contribution in #1543
- @MattPatchava made their first contribution in #1552
- @JohnMoon-Voyager made their first contribution in #1550
- @giddyos made their first contribution in #1554
- @rahsonaw made their first contribution in #1544
Full Changelog: async-nats/v0.46.0...async-nats/v0.47.0
Release notes
Open source →This release adds subject validation (with opt-out possibility) and wraps while connect attempt in timeout, making it more robust.
Added
- Add Subject Validation by @Jarema in https://github.com/nats-io/nats.rs/pull/1525
- Add respond_with_headers method to handle responses with custom headers by @giddyos in https://github.com/nats-io/nats.rs/pull/1554
- Add local_address option to bind client to a specific local IP by @wallyqs in https://github.com/nats-io/nats.rs/pull/1539
- Implement Clone for ConnectOptions by @MattPatchava in https://github.com/nats-io/nats.rs/pull/1552
Fixed
- Fix invalid consumer rate limit json by @Totodore in https://github.com/nats-io/nats.rs/pull/1536
- Return error instead of panic when reply subject is empty by @liamkinne in https://github.com/nats-io/nats.rs/pull/1514
- Use proper doc comments by @Xaeroxe in https://github.com/nats-io/nats.rs/pull/1543
- Fix connection_timeout to cover full NATS handshake by @rahsonaw in https://github.com/nats-io/nats.rs/pull/1544
Changed
- Update rustls-native-certs from 0.7 to 0.8 by @FreeMasen in https://github.com/nats-io/nats.rs/pull/1507
- Remove
once_celland use std::sync::LazyLock instead by @Jarema in https://github.com/nats-io/nats.rs/pull/1534 - Bump bytes crate by @Jarema in https://github.com/nats-io/nats.rs/pull/1540
- Bump msrv by @Jarema in https://github.com/nats-io/nats.rs/pull/1509
- Update rustls-webpki to 0.103.10 by @JohnMoon-Voyager in https://github.com/nats-io/nats.rs/pull/1550
- Update dictionary by @Jarema in https://github.com/nats-io/nats.rs/pull/1556
New Contributors
- @FreeMasen made their first contribution in https://github.com/nats-io/nats.rs/pull/1507
- @Xaeroxe made their first contribution in https://github.com/nats-io/nats.rs/pull/1543
- @MattPatchava made their first contribution in https://github.com/nats-io/nats.rs/pull/1552
- @JohnMoon-Voyager made their first contribution in https://github.com/nats-io/nats.rs/pull/1550
- @giddyos made their first contribution in https://github.com/nats-io/nats.rs/pull/1554
- @rahsonaw made their first contribution in https://github.com/nats-io/nats.rs/pull/1544
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.46.0...async-nats/v0.47.0
-
0.46.020 Jan 2026Release notes
Open source →This release introduces disabled by default feature-gating of features and modules.
Users can now disablenkeys,object-store, or others, to limit the size of the final binary and dependency pulled in.Added
Fixed
- Eliminate build-time warnings for
async-natsby @vkolomeyko in #1489 - Fix error deserialization when err_code is absent by @Jarema in #1497
- Fix slow subscription shutdown after drain by @Jarema in #1504
Changed
- Relax type constraints around
ServiceBuilder::startby @vkolomeyko in #1486 - Use with_source for CreateError to maintain original error source by @LouiseSianEvans in #1495
- Switch to rustls-pki-types by @Jarema in #1492
- Tidy-up
async-nats/src/service/mod.rsby @vkolomeyko in #1487 - Make some consumer/stream config accept
omitemptycase by @Jarema in #1493 - Improve the
draindocs for better clarity by @Jarema in #1484
New Contributors
- @vkolomeyko made their first contribution in #1489
- @LouiseSianEvans made their first contribution in #1495
Full Changelog: async-nats/v0.45.0...async-nats/v0.46.0
Release notes
Open source →This release introduces disabled by default feature-gating of features and modules. Users can now disable
nkeys,object-store, or others, to limit the size of the final binary and dependency pulled in.Added
- Hide features & modules behind feature flags by @Jarema in https://github.com/nats-io/nats.rs/pull/1494
Fixed
- Eliminate build-time warnings for
async-natsby @vkolomeyko in https://github.com/nats-io/nats.rs/pull/1489 - Fix error deserialization when err_code is absent by @Jarema in https://github.com/nats-io/nats.rs/pull/1497
- Fix slow subscription shutdown after drain by @Jarema in https://github.com/nats-io/nats.rs/pull/1504
Changed
- Relax type constraints around
ServiceBuilder::startby @vkolomeyko in https://github.com/nats-io/nats.rs/pull/1486 - Use with_source for CreateError to maintain original error source by @LouiseSianEvans in https://github.com/nats-io/nats.rs/pull/1495
- Switch to rustls-pki-types by @Jarema in https://github.com/nats-io/nats.rs/pull/1492
- Tidy-up
async-nats/src/service/mod.rsby @vkolomeyko in https://github.com/nats-io/nats.rs/pull/1487 - Make some consumer/stream config accept
omitemptycase by @Jarema in https://github.com/nats-io/nats.rs/pull/1493 - Improve the
draindocs for better clarity by @Jarema in https://github.com/nats-io/nats.rs/pull/1484
New Contributors
- @vkolomeyko made their first contribution in https://github.com/nats-io/nats.rs/pull/1489
- @LouiseSianEvans made their first contribution in https://github.com/nats-io/nats.rs/pull/1495
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.45.0...async-nats/v0.46.0
- Eliminate build-time warnings for
-
0.45.004 Nov 2025Release notes
Open source →Overview
A smaller release adding missing
valuefield topub_ackand some additional fixes.Added
- Add pub ack
valuefield by @Jarema in #1473 - Add
double_ack_withmethod to JetStream Messages by @OtaK in #1474
Fixed
- Fix object store headers serde by @Jarema in #1472
- Fix Kv limit markers in watches by @Jarema in #1475
Full Changelog: async-nats/v0.44.2...async-nats/v0.45.0
Release notes
Open source →Overview
A smaller release adding missing
valuefield topub_ackand some additional fixes.Added
- Add pub ack
valuefield by @Jarema in https://github.com/nats-io/nats.rs/pull/1473 - Add
double_ack_withmethod to JetStream Messages by @OtaK in https://github.com/nats-io/nats.rs/pull/1474
Fixed
- Fix object store headers serde by @Jarema in https://github.com/nats-io/nats.rs/pull/1472
- Fix Kv limit markers in watches by @Jarema in https://github.com/nats-io/nats.rs/pull/1475
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.44.2...async-nats/v0.45.0
- Add pub ack
-
0.44.208 Oct 2025Release notes
Open source →Overview
This PR adds a new method to Context traits and fixes the docs build
What's Changed
Full Changelog: async-nats/v0.44.1...async-nats/v0.44.2
Release notes
Open source →Overview
This PR adds a new method to Context traits and fixes the docs build
What's Changed
- Add send_request method to JetStream Context by @Jarema in https://github.com/nats-io/nats.rs/pull/1466
- Fix docs by @Jarema in https://github.com/nats-io/nats.rs/pull/1468
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.44.1...async-nats/v0.44.2
-
0.44.102 Oct 2025Release notes
Open source →What's Changed
- Add missing errors types by @Jarema in https://github.com/nats-io/nats.rs/pull/1464
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.44.0...async-nats/v0.44.1
-
0.44.002 Oct 2025Release notes
Open source →Overview
A release that focuses on reorganization of types and improvement of extension traits for orbit
What's Changed
- Enable service API by default by @Jarema in #1461
- Extend client traits by @Jarema in #1456
- Reorganize
messagetypes by @Jarema in #1462
Full Changelog: async-nats/v0.43.1...async-nats/v0.44.0
Release notes
Open source →Overview
A release that focuses on reorganization of types and improvement of extension traits for orbit
What's Changed
- Enable service API by default by @Jarema in https://github.com/nats-io/nats.rs/pull/1461
- Extend client traits by @Jarema in https://github.com/nats-io/nats.rs/pull/1456
- Reorganize
messagetypes by @Jarema in https://github.com/nats-io/nats.rs/pull/1462
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.43.1...async-nats/v0.44.0
-
0.43.126 Sep 2025Release notes
Open source →Overview
A hotfix for bugs and regressions introduced with recent release.
Fixed
- Fix direct get with nats-server 2.11 & improve testing against older servers by @Jarema in https://github.com/nats-io/nats.rs/pull/1458
- Properly handle acker cleanup by @Jarema in https://github.com/nats-io/nats.rs/pull/1460
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.43.0...async-nats/v0.43.13.0
Overview
This release adds support for 2.12 server features and adds JetStream backpressure control to publishing.
Added
- Add
allow_atomic_publishby @Jarema in https://github.com/nats-io/nats.rs/pull/1448 - Add prioritized PriorityPolicy by @Jarema in https://github.com/nats-io/nats.rs/pull/1440
- Add messages counters stream config by @Jarema in https://github.com/nats-io/nats.rs/pull/1453
- Add messages schedules stream config field by @Jarema in https://github.com/nats-io/nats.rs/pull/1452
- Add peristence mode to the stream config by @Jarema in https://github.com/nats-io/nats.rs/pull/1449
- Add new fields to
ClusterInfoby @Jarema in https://github.com/nats-io/nats.rs/pull/1439 - Add more fields to ServerInfo by @OtaK in https://github.com/nats-io/nats.rs/pull/1434
- Add backpressure to publish by @Jarema in https://github.com/nats-io/nats.rs/pull/1286
- Add port/path support for WebSockets by @AleTopp in https://github.com/nats-io/nats.rs/pull/1426
- Add test to confirm user can promote mirror to a stream by @Jarema in https://github.com/nats-io/nats.rs/pull/1438
- Add Direct get builder by @Jarema in https://github.com/nats-io/nats.rs/pull/1442
- Add TryFrom<Bytes> support for subject by @Sibz in https://github.com/nats-io/nats.rs/pull/1390
Fixed
- Fix linter issues by @Jarema in https://github.com/nats-io/nats.rs/pull/1427
- Improve push ordered consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/1445
Changed
- Expose get_info for consumer by @nitsky in https://github.com/nats-io/nats.rs/pull/1428
- Make errors methods public by @Jarema in https://github.com/nats-io/nats.rs/pull/1431
- Replace futures by futures-util by @Totodore in https://github.com/nats-io/nats.rs/pull/1424
New Contributors
- @nitsky made their first contribution in https://github.com/nats-io/nats.rs/pull/1428
- @AleTopp made their first contribution in https://github.com/nats-io/nats.rs/pull/1426
- @Sibz made their first contribution in https://github.com/nats-io/nats.rs/pull/1390
- @OtaK made their first contribution in https://github.com/nats-io/nats.rs/pull/1434
- @Totodore made their first contribution in https://github.com/nats-io/nats.rs/pull/1424
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.42.0...async-nats/v0.43.0
-
0.43.023 Sep 2025Nothing published for this version
-
0.42.011 Jun 2025Release notes
Open source →This releases focuses on some fixes and addition of Client traits that allow for easier extension of the client.
What's Changed
- Fix getting account info on server < 2.11 by @Jarema in https://github.com/nats-io/nats.rs/pull/1413
- Add client traits by @Jarema in https://github.com/nats-io/nats.rs/pull/1411
- Fix object store getting empty or deleted object by @Jarema in https://github.com/nats-io/nats.rs/pull/1415
- Fix the order of the max payload exceeded message numbers by @fnichol in https://github.com/nats-io/nats.rs/pull/1416
- Fix fetching messages before polling for them by @Jarema in https://github.com/nats-io/nats.rs/pull/1418
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.41.0...async-nats/v0.41.1
-
0.41.015 May 2025Release notes
Open source →This release focuses on adding limit markers support to KV.
Added
- Add more detailed tracing by @caspervonb in https://github.com/nats-io/nats.rs/pull/1393
- Add kv limit markers by @Jarema in https://github.com/nats-io/nats.rs/pull/1404
- Add create_or_update and update methods to KV by @Jarema in https://github.com/nats-io/nats.rs/pull/1407
Fixed
- Always use try_send on events channels to avoid potential blocks by @Jarema in https://github.com/nats-io/nats.rs/pull/1391
- Revert endless retry on consumer info by @Jarema in https://github.com/nats-io/nats.rs/pull/1399
- Fix consumer info error handling by @Jarema in https://github.com/nats-io/nats.rs/pull/1400
- Handle no responders in Consumers and never giving up by @Jarema in https://github.com/nats-io/nats.rs/pull/1398
- Fix typo in documentation of stream.rs by @RasmusRendal in https://github.com/nats-io/nats.rs/pull/1395
Changed
- Add note about webpki-roots license by @Jarema in https://github.com/nats-io/nats.rs/pull/1405
New Contributors
- @RasmusRendal made their first contribution in https://github.com/nats-io/nats.rs/pull/1395
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.40.0...async-nats/v0.41.0
-
0.40.024 Mar 2025Release notes
Open source →This release focuses on adding support for nats-server v2.11.
Added
- Add pause consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/1385
- Add per message ttl and delete markers support by @Jarema in https://github.com/nats-io/nats.rs/pull/1387
- Add Consumer Groups and Overflow support by @Jarema in https://github.com/nats-io/nats.rs/pull/1384
Fixed
- Revert stopping watcher and set
seen_currentinstead by @Jarema in https://github.com/nats-io/nats.rs/pull/1377 - Fix alignment of port() with
Url::port_or_known_defaultby @steveej in https://github.com/nats-io/nats.rs/pull/1383
Changed
- Derive Clone for Key/Value store Config by @jephthia in https://github.com/nats-io/nats.rs/pull/1381
- Change docs for jetstream::consumer::Info by @danyi1212 in https://github.com/nats-io/nats.rs/pull/1386
New Contributors
- @jephthia made their first contribution in https://github.com/nats-io/nats.rs/pull/1381
- @steveej made their first contribution in https://github.com/nats-io/nats.rs/pull/1383
- @danyi1212 made their first contribution in https://github.com/nats-io/nats.rs/pull/1386
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.39.0...async-nats/v0.40.0
-
0.39.019 Feb 2025Release notes
Open source →Overview
This release focuses on improvements and fixes for Object Store and KV.
Added
- Add kv::watch_many functions by @Jarema in https://github.com/nats-io/nats.rs/pull/1364
- Add metadata and headers to Object Store by @Jarema in https://github.com/nats-io/nats.rs/pull/1349
- Allow updating Object Store metadata headers and metadata by @Jarema in https://github.com/nats-io/nats.rs/pull/1362
- Add additional methods for getting raw messages from the stream by @Jarema in https://github.com/nats-io/nats.rs/pull/1359
Fixed
- Support
sample_freqvalues containing a % by @bengsparks in https://github.com/nats-io/nats.rs/pull/1354 - Improve push consumers in
sample_freqde/serialisation test by @bengsparks in https://github.com/nats-io/nats.rs/pull/1356 - Delete old objects when calling
ObjectStore::putby @thinety in https://github.com/nats-io/nats.rs/pull/1366
Changed
- Use jetstream strict for tests by @caspervonb in https://github.com/nats-io/nats.rs/pull/1310
- Improve transient dependencies by @Jarema in https://github.com/nats-io/nats.rs/pull/1361
- Change
jetstream::Error'sDisplaymessage by @thinety in https://github.com/nats-io/nats.rs/pull/1365 - Remove stale experimental flags mentions by @Jarema in https://github.com/nats-io/nats.rs/pull/1372
New Contributors
- @thinety made their first contribution in https://github.com/nats-io/nats.rs/pull/1365
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.38.0...async-nats/v0.39.0
-
0.38.019 Nov 2024Release notes
Open source →Overview
This release adds Websockets support, using
tokio-websocketimplementation. Feature is behind a feature flagwebsockets, enabled by default.Breaking Changes
- Change Auth struct signature field to
Vec<u8>by @mnordstr in https://github.com/nats-io/nats.rs/pull/1337
Added
- Add Websockets support by @Jarema in https://github.com/nats-io/nats.rs/pull/1330
- Add ability to fetch stream subjects by @Jarema in https://github.com/nats-io/nats.rs/pull/1329
- Add getter for Client request timeout by @Jarema in https://github.com/nats-io/nats.rs/pull/1338
- Implement the "drain" feature for subscriptions and connections by @jsudano in https://github.com/nats-io/nats.rs/pull/1332
Fixed
- Fix adding back prefix in service group creation by @rexf in https://github.com/nats-io/nats.rs/pull/1339
New Contributors
- @mnordstr made their first contribution in https://github.com/nats-io/nats.rs/pull/1337
- @rexf made their first contribution in https://github.com/nats-io/nats.rs/pull/1339
- @jsudano made their first contribution in https://github.com/nats-io/nats.rs/pull/1332
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.37.0...async-nats/v0.38.0
- Change Auth struct signature field to
-
0.37.001 Oct 2024Release notes
Open source →Overview
A smaller release containing stats and Watcher improvements.
What's Changed
- Add Client stats by @Jarema in https://github.com/nats-io/nats.rs/pull/1314
- Improve kv::Watcher without messages by @Jarema in https://github.com/nats-io/nats.rs/pull/1321
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.36.0...async-nats/v0.37.0
-
0.36.003 Sep 2024Release notes
Open source →Overview
This release adds a useful
futures::Sink<PublishMessage>, and ability to getStreamhandle without IO call, among other changes.Breaking changes
This release introduces
StramMessage, which makes bothget_raw_messageanddirect_getmethods return the same type, allowing for more easier interop between two.- Rework get_raw_message to return
StreamMessageby @Jarema in https://github.com/nats-io/nats.rs/pull/1292
Added
- Add stream_by_subject by @Jarema in https://github.com/nats-io/nats.rs/pull/1287
- Add
seen_currentto kv by @Jarema in https://github.com/nats-io/nats.rs/pull/1304 - Add get stream no io by @Jarema in https://github.com/nats-io/nats.rs/pull/1306
- Add
futures::Sink<PublishMessage>onasync_nats::Clientby @rvolosatovs in https://github.com/nats-io/nats.rs/pull/1267 - Create header name/value from String without reallocating by @glueball in https://github.com/nats-io/nats.rs/pull/1296
Fixed
- Fix
subscription_capacitydocumention default value by @nazar-pc in https://github.com/nats-io/nats.rs/pull/1277 - Fix serde Stream roundtrip by @Jarema in https://github.com/nats-io/nats.rs/pull/1294
- Fix KV create race after delete/purge by @fnichol in https://github.com/nats-io/nats.rs/pull/1301
- Allow setting size limit for object storage buckets by @liamkinne in https://github.com/nats-io/nats.rs/pull/1278
- Fix De/Serialize
sample_frequencycorrectly for Push and Pull Consumers by @bengsparks in https://github.com/nats-io/nats.rs/pull/1300
Changed
- Remove server version validation by @Jarema in https://github.com/nats-io/nats.rs/pull/1273
- Remove unwrap from consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/1305
New Contributors
- @HeCorr made their first contribution in https://github.com/nats-io/nats.rs/pull/1263
- @liamkinne made their first contribution in https://github.com/nats-io/nats.rs/pull/1278
- @nazar-pc made their first contribution in https://github.com/nats-io/nats.rs/pull/1277
- @glueball made their first contribution in https://github.com/nats-io/nats.rs/pull/1296
- @fnichol made their first contribution in https://github.com/nats-io/nats.rs/pull/1301
- @rvolosatovs made their first contribution in https://github.com/nats-io/nats.rs/pull/1267
- @bengsparks made their first contribution in https://github.com/nats-io/nats.rs/pull/1300
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.35.1...async-nats/v0.36.0
- Rework get_raw_message to return
-
0.35.114 May 2024Release notes
Open source →Overview
This release fixes broken docs build caused by
fips, which cannot be built in restricted docs.rs environment.What's Changed
- Fix docs.rs build by @Jarema in https://github.com/nats-io/nats.rs/pull/1259
- Preserve case of server error messages by @oscarwcl in https://github.com/nats-io/nats.rs/pull/1258
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.35.0...async-nats/v0.35.1
-
0.35.006 May 2024Release notes
Open source →Overview
This release makes tls setup more flexible, leveraging rustls v0.23 and allowing to pick crypto backend:
- ring
- aws-lc-rs
- fips
Some other highlights:
- force reconnect via
force_reconnectmethod - explicit create/update consumer API
Thank you for all your contributions!
Added
- Add
ToServerAddrsimpl for array/vector of strings by @mmalek in https://github.com/nats-io/nats.rs/pull/1231 - Add public constructor for Acker by @AbstractiveNord in https://github.com/nats-io/nats.rs/pull/1232
- Add force reconnect by @Jarema in https://github.com/nats-io/nats.rs/pull/1240
- Add features check by @Jarema in https://github.com/nats-io/nats.rs/pull/1247
- Add stream placement by @Jarema in https://github.com/nats-io/nats.rs/pull/1250
- Add consumer action by @Jarema in https://github.com/nats-io/nats.rs/pull/1254
- Add support for aws-lc-rs (rustls v0.23.0) by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1222
Fixed
- Use last header value for JetStream messages by @Jarema in https://github.com/nats-io/nats.rs/pull/1239
Changed
- Wrap inbox prefix in an
Arcby @thomastaylor312 in https://github.com/nats-io/nats.rs/pull/1236 - Document feature flags by @Jarema in https://github.com/nats-io/nats.rs/pull/1246
- Don't force flush if write buffer isn't empty by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1241
New Contributors
- @mmalek made their first contribution in https://github.com/nats-io/nats.rs/pull/1231
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.34.0...async-nats/v0.35.0
-
0.34.004 Mar 2024Release notes
Open source →Overview
This release introduces performance improvements (thanks to poll_recv_many #1189), improves resilience of ordered consumers by recreating them in more cases while having less server calls. It also adds some new features.
Breaking Changes
Breaking changes are minor, however, all are worth mentioning.
- Don't expose BoxFuture in public API by @oscarwcl in https://github.com/nats-io/nats.rs/pull/1167
This change simplifies lifetimes of Boxed Futures, by making them static. It should not affect most users, and if it does, removal of the lifetime should be a quick fix.
- Add check for max payload size when publishing messages by @Jarema in https://github.com/nats-io/nats.rs/pull/1211
The client was not checking if the message payload size was not exceeding the limits of the server it is connected to. While doing the fix, the error returned was changed into one consistent with others: a struct with enum of possible error variants under
kind()method, of which one isMaxPayloadExceeded. This should not break users, as before there was no enum in the first place, but it is a breaking change.- Add stream name check to all stream management methods by @Jarema in https://github.com/nats-io/nats.rs/pull/1214
It added new enum variant to Consumer and Stream error kinds. Breaking for those who match those errors in exhaustive manner.
- Remove clone in message split method by @AbstractiveNord in https://github.com/nats-io/nats.rs/pull/1172
This changes to be a
mut selffromselfwhile removing unnecessary clone.Fixed
- Fix ordered-consumer example by @ReubenMathew in https://github.com/nats-io/nats.rs/pull/1159
- Fix Service::stop by @tinou98 in https://github.com/nats-io/nats.rs/pull/1160
- Fix linter error in service test by @Jarema in https://github.com/nats-io/nats.rs/pull/1165
- Fix minor cargo workspace warnings by @barafael in https://github.com/nats-io/nats.rs/pull/1179
- Add missing docs for ConnectOptions by @barafael in https://github.com/nats-io/nats.rs/pull/1181
- Fix copy-pasted doc comment by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1209
- Fix benchmark linter error by @Jarema in https://github.com/nats-io/nats.rs/pull/1212
- Ensure the ping interval waker is registered by @dodomorandi in https://github.com/nats-io/nats.rs/pull/1199
- Add source implementation for Error by @Jarema in https://github.com/nats-io/nats.rs/pull/1215
Added
- Add max reconnects to public API by @Jarema in https://github.com/nats-io/nats.rs/pull/1188
- Add
createfunction to kv store by @praveenperera in https://github.com/nats-io/nats.rs/pull/1206 - Add compression to object store by @Jarema in https://github.com/nats-io/nats.rs/pull/1217
- Add watch from revision for KV by @Jarema in https://github.com/nats-io/nats.rs/pull/1196
- Add revision to kv operations by @boba2fett in https://github.com/nats-io/nats.rs/pull/1182
- Add
into_stringmethod toSubjectby @thomastaylor312 in https://github.com/nats-io/nats.rs/pull/1161
Changed
- Allow async and sync nats to compile on MIPS and PowerPC by @protochron in https://github.com/nats-io/nats.rs/pull/1210
- Always log
Events by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1123 - Remove unused dependency on http by @oscarwcl in https://github.com/nats-io/nats.rs/pull/1164
- Do asynchronous DNS lookups in
ServerAddr::socket_addrsby @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1191 - Optimize consumer recreate by @Jarema in https://github.com/nats-io/nats.rs/pull/1202
- Use poll_recv_many for processing commands to be written to the nats server by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1189
- Make
Subject::from_statica const fn by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1207 - Bump base64 to v0.22 by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1223
- Recreate ordered pull on heartbeats by @Jarema in https://github.com/nats-io/nats.rs/pull/1178
- Changed
selfto a borrow inRequest::respond()by @jlandahl in https://github.com/nats-io/nats.rs/pull/1139 - Check min versions of transitive depencencies in CI by @nepalez in https://github.com/nats-io/nats.rs/pull/1115
- Serialize/Deserialize Subject and HeaderName as strings by @oscarwcl in https://github.com/nats-io/nats.rs/pull/1168
- Terminate fetch on
No Messagesby @Jarema in https://github.com/nats-io/nats.rs/pull/1171 - Bump nkeys to 0.4 by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1195
- Update rustls to v0.22 and related dependencies by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1170
New Contributors
- @ReubenMathew made their first contribution in https://github.com/nats-io/nats.rs/pull/1159
- @jlandahl made their first contribution in https://github.com/nats-io/nats.rs/pull/1139
- @oscarwcl made their first contribution in https://github.com/nats-io/nats.rs/pull/1164
- @AbstractiveNord made their first contribution in https://github.com/nats-io/nats.rs/pull/1172
- @barafael made their first contribution in https://github.com/nats-io/nats.rs/pull/1179
- @boba2fett made their first contribution in https://github.com/nats-io/nats.rs/pull/1182
- @dodomorandi made their first contribution in https://github.com/nats-io/nats.rs/pull/1199
- @praveenperera made their first contribution in https://github.com/nats-io/nats.rs/pull/1206
Full Changelog: https://github.com/nats-io/nats.rs/compare/nats/v0.24.1...async-nats/v0.34.0
-
0.33.007 Nov 2023Release notes
Open source →Overview
This release introduces last planned breaking changes and stabilizes the async API.
Subject in publish methods
The biggest change is how subjects are handled. Until now, publish was of type
String:client.publish("subject".to_string(), "data".into()).await?;This was easy to understand and reason about, but had two downsides:
- It was always allocating
- It was cumbersome for codebases working with
&'static str
The signature has been change into:
// Signature async fn publish(subject: impl ToSubject, payload: Bytes) // Usage client.publish("subject", "data".into()).await?;This is not only more concise, but also allows avoiding allocations when subject is
static, or when it isSubjecttype that can be cheaply cloned leveraging memory optimizedbytes::Bytesmechanism under the hood.Service API improvements
Beyond that, there were a lot of improvements to Service API to address cross-language compatibility issues. All structures are now tested against common cross-language json schemas. Thanks @jadamcrain for all the feedback, issues nad PRs related to Service API!
Docs improvements
Despite every method having documentation with examples, we were aware that sometimes its hard to navigate the docs to find what someone is looking for. This was addressed by adding module-level docs.
Added
- Add subject type by @caspervonb in https://github.com/nats-io/nats.rs/pull/952 & @Jarema in https://github.com/nats-io/nats.rs/pull/1147
- Add custom serialized for last_error, update schemas by @piotrpio in https://github.com/nats-io/nats.rs/pull/1140
- Add JetStream, kv, object store and service to top level docs examples by @Jarema in https://github.com/nats-io/nats.rs/pull/1154
- Add compression option to kv by @Jarema in https://github.com/nats-io/nats.rs/pull/1143
- Add TLS first support by @Jarema in https://github.com/nats-io/nats.rs/pull/1136
Changed
- Use muxed inbox to handle jetstream publishes by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1130
- Make object store structures more resilient by @Jarema in https://github.com/nats-io/nats.rs/pull/1127
Fixed
- Fix service Info to include endpoints info by @Jarema in https://github.com/nats-io/nats.rs/pull/1119
- Fix service defaults by @Jarema in https://github.com/nats-io/nats.rs/pull/1150
- Fix calculating average processing time as total time / # requests by @jadamcrain in https://github.com/nats-io/nats.rs/pull/1152
Misc
- Bump ring crate to v0.17 by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1129
- Cleanup flush logic by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1120
- Improve CI/CD by @nepalez in https://github.com/nats-io/nats.rs/pull/1122
- Increase default channel capacity values by @Jarema in https://github.com/nats-io/nats.rs/pull/1133
- Remove println by @jadamcrain in https://github.com/nats-io/nats.rs/pull/1155
New Contributors
- @jadamcrain made their first contribution in https://github.com/nats-io/nats.rs/pull/1152
- @sp-angel made their first contribution in https://github.com/nats-io/nats.rs/pull/1128
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.32.0...async-nats/v0.33.0
-
0.32.130 Sep 2023Release notes
Open source →Overview
This is a patch release for the new 0.32 muxer, as it could subscribe to more messages than necessary, properly dispatching them but potentially increasing traffic.
Fixed
- Fix muxer prefix by @Jarema in https://github.com/nats-io/nats.rs/pull/1124
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.32.0...async-nats/v0.32.1
-
0.32.021 Sep 2023Release notes
Open source →Overview
This release primarily focuses on two things:
- adding remaining nats server 2.10 features and enabling
server_2_10feature by default - rework of connection handling (huge thanks to @paolobarbolini for the effort! 🚀 )
An important change introduced by a reworked connection handler is that users should not need to manually flush by calling
client.flush().awaitto reduce latency.Added
- Add stream subject mappings by @Jarema in https://github.com/nats-io/nats.rs/pull/1103
- Add new Stream Config 2.10 fields by @Jarema in https://github.com/nats-io/nats.rs/pull/1113
- Add customization of Object Store chunk size by @Jarema in https://github.com/nats-io/nats.rs/pull/1105
- Add update metadata by @Jarema in https://github.com/nats-io/nats.rs/pull/1064
- Add jetstream benchmarks by @Jarema in https://github.com/nats-io/nats.rs/pull/1080
- Introduce
getandget_allsemantics toHeaderMapby @n1ghtmare in https://github.com/nats-io/nats.rs/pull/1071 - Change
Header::appendvalue toIntoHeaderValueby @caspervonb in https://github.com/nats-io/nats.rs/pull/1076 - Implement
fmt::DisplayforHeaderValueby @caspervonb in https://github.com/nats-io/nats.rs/pull/1086 - Add watch_with_history method by @tinou98 in https://github.com/nats-io/nats.rs/pull/1082
- Implement
AsRefforHeaderValueby @caspervonb in https://github.com/nats-io/nats.rs/pull/1087 - Implement
FromforHeaderValueon integer types by @caspervonb in https://github.com/nats-io/nats.rs/pull/1083 - Multiplex requests over a single subscription by @caspervonb in https://github.com/nats-io/nats.rs/pull/1069
- Add object store link by @Jarema in https://github.com/nats-io/nats.rs/pull/1091
- Add customizable queue groups to service API by @Jarema in https://github.com/nats-io/nats.rs/pull/1109
Changed
- Enable 2.10 features by default by @Jarema in https://github.com/nats-io/nats.rs/pull/1114
- Refactor connection handling by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1060
- Tidy up
ServerOpparsing by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1052 - Remove link from metadata update by @Jarema in https://github.com/nats-io/nats.rs/pull/1067
- Bump msrv & dependencies by @Jarema in https://github.com/nats-io/nats.rs/pull/1065
- Take
impl AsRef<Path>instead ofPathBufin credentials APIs by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1012 - Optimize
GETting and object's payload by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1040 - Implement
FromStrforjetstream::kv::Operationby @n1ghtmare in https://github.com/nats-io/nats.rs/pull/1056 - Clear documentation for Context::get_object_store by @nmandery in https://github.com/nats-io/nats.rs/pull/1059
- Use
Durationin a few more places by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1038 - [Refactoring] Use a generic error type instead of the macro
error_implsby @nepalez in https://github.com/nats-io/nats.rs/pull/1047 - Remove some allocations from benchmarks by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1073
- Update nuid crate to 0.5 by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1084
- Switch dependency: json->serde_json in nats-server by @nepalez in https://github.com/nats-io/nats.rs/pull/1106
- Bump Go to 1.20 by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1110
Fixed
- Correct spelling mistake in jetstream/consumer/pull by @SohumB in https://github.com/nats-io/nats.rs/pull/1097
- Fix potentially ambiguous
.as_ref()by @robjtede in https://github.com/nats-io/nats.rs/pull/1062 - Fix rustls deprecation warning by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1074
- Fix typo in ping_interval example by @sravan-s in https://github.com/nats-io/nats.rs/pull/1100
- Show features behind feature flags in docs by @Jarema in https://github.com/nats-io/nats.rs/pull/1107
- Fix minimal versions by @nepalez in https://github.com/nats-io/nats.rs/pull/1108
New Contributors
- @nepalez made their first contribution in https://github.com/nats-io/nats.rs/pull/1047
- @nmandery made their first contribution in https://github.com/nats-io/nats.rs/pull/1059
- @robjtede made their first contribution in https://github.com/nats-io/nats.rs/pull/1062
- @SohumB made their first contribution in https://github.com/nats-io/nats.rs/pull/1097
- @bruth made their first contribution in https://github.com/nats-io/nats.rs/pull/1096
- @sravan-s made their first contribution in https://github.com/nats-io/nats.rs/pull/1100
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.30.1...async-nats/v0.32.0
- adding remaining nats server 2.10 features and enabling
-
0.31.025 Jul 2023Release notes
Open source →This release focuses on improvements of heartbeats in JetStream Consumers.
Heartbeats are a tool that tells the user if the given consumer is healthy but does not get any messages or if the reason for no message is an actual problem. However, if the user was not polling the
Streamfuture for the next messages for a long time (because it was slowly processing messages), that could trigger idle heartbeats, as the library could not see the heartbeat messages without messages being polled.This release fixes it by starting the idle heartbeat timer only after Stream future is polled (which usually means calling
messages.next().await).What's Changed
- Fix unwrap from
HeaderName::from_strcall by @caspervonb in https://github.com/nats-io/nats.rs/pull/1032 - Use idiomatic method for writing
Optionand accessing innerTby @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1034 - Add missing sequence number reset by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1035
- Fix header name range validation by @caspervonb in https://github.com/nats-io/nats.rs/pull/1031
- Simplify consumer checking logic by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1033
- Fix millis -> nanos typo in
BatchConfigexpirationby @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1037 - Fix kv purge with prefix (thanks @brooksmtownsend for reporting it!) by @Jarema in https://github.com/nats-io/nats.rs/pull/1055
- Remove memcpy in object store PUT by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1039
- Drop subscription on list done by @Jarema in https://github.com/nats-io/nats.rs/pull/1041
- Improve push consumer handling when encountering slow consumers by @Jarema in https://github.com/nats-io/nats.rs/pull/1044
- Rework idle heartbeat for pull consumers by @Jarema in https://github.com/nats-io/nats.rs/pull/1046
- Rework push consumer heartbeats handling by @Jarema in https://github.com/nats-io/nats.rs/pull/1048
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.30.0...async-nats/v0.30.1
- Fix unwrap from
-
0.30.014 Jul 2023Release notes
Open source →Overview
This is a big release that introduces almost all breaking changes and API refinements before 1.0.0. The last two pending breaking items are:
- Improved builders based on https://github.com/nats-io/nats.rs/discussions/828
- Introduce a
Subjecttype (still discussed)
Breaking Changes
- Update Service for parity with ADR by @Jarema in https://github.com/nats-io/nats.rs/pull/965
- Remove schema and api_url from Service API by @Jarema in https://github.com/nats-io/nats.rs/pull/972
- Add concrete error types to JetStream by @Jarema in https://github.com/nats-io/nats.rs/pull/874
- Add concrete errors to KV by @Jarema in https://github.com/nats-io/nats.rs/pull/1014
- Add concrete errors to Object Store by @Jarema in https://github.com/nats-io/nats.rs/pull/1015
- Add Pull Consumer concrete errors by @Jarema in https://github.com/nats-io/nats.rs/pull/1009
- Use
Bytesfor key-value payloads by @caspervonb in https://github.com/nats-io/nats.rs/pull/939 - Use u64 instead of usize for nanoseconds by @MJayat in https://github.com/nats-io/nats.rs/pull/901
- Prefer returning
&strover String where applicable by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/878 - Change
stream::Config::duplicate_windowtoDurationby @n1ghtmare in https://github.com/nats-io/nats.rs/pull/1023
Added
- Add ordered pull consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/916
- Add
jetstream::MessageAckerby @Jarema in https://github.com/nats-io/nats.rs/pull/938 - Add Context::get_consumer_from_stream by @Jarema in https://github.com/nats-io/nats.rs/pull/502
- Add custom auth callback by @Jarema in https://github.com/nats-io/nats.rs/pull/997
- Add custom tls config option by @Jarema in https://github.com/nats-io/nats.rs/pull/903
- Add
watch_with_historyto KV store by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/902 - Implement AsRef<str> for HeaderName by @matthiasbeyer in https://github.com/nats-io/nats.rs/pull/921
- Implement
fmt::DisplayforHeaderNameby @caspervonb in https://github.com/nats-io/nats.rs/pull/924 - Derive
CloneforMessageby @mgrachev in https://github.com/nats-io/nats.rs/pull/975 - Add max_bytes for pull consumer config by @piotrpio in https://github.com/nats-io/nats.rs/pull/992
- Add inactive threshold for pull consumer by @paulgb in https://github.com/nats-io/nats.rs/pull/994
- Add const representation for standard header names by @caspervonb in https://github.com/nats-io/nats.rs/pull/946
- Add static representation for custom header names by @caspervonb in https://github.com/nats-io/nats.rs/pull/967
- Add
reconnect_delay_callbacktoConnectOptionsby @n1ghtmare in https://github.com/nats-io/nats.rs/pull/962 - Makes
Messageserialize/deserialize by @thomastaylor312 in https://github.com/nats-io/nats.rs/pull/998
Fixed
- Disconnect if pending pings is more than max pings by @caspervonb in https://github.com/nats-io/nats.rs/pull/956
- Fix serialization of
object_store::ObjectInfofields by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/895 - Fix ordered consumer handling for stream sequence and heartbeats by @Jarema in https://github.com/nats-io/nats.rs/pull/961
- Canonicalize
header::NATS_LAST_STREAMby @caspervonb in https://github.com/nats-io/nats.rs/pull/948 - Fix KV update so that it works properly with a JS domain by @protochron in https://github.com/nats-io/nats.rs/pull/1000
- Fix object store compatibility issue with Go implementation by @tinou98 in https://github.com/nats-io/nats.rs/pull/984
- Drop subscription on object read done by @Jarema in https://github.com/nats-io/nats.rs/pull/1011
Changed
- Make the current
Errortype work with anyhow by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1004 - Remove collect to Vec in try_read_op by @YaZasnyal in https://github.com/nats-io/nats.rs/pull/894
- Remove unnecessary clone for publish payloads by @YaZasnyal in https://github.com/nats-io/nats.rs/pull/893
- Remove extra whitespaces by @mgrachev in https://github.com/nats-io/nats.rs/pull/904
What's Changed
- Optimize read buffer with capacity to reduce allocations by @YaZasnyal in https://github.com/nats-io/nats.rs/pull/888
- Make SubscribeError public by @Jarema in https://github.com/nats-io/nats.rs/pull/899
- Remove a few redundant allocations by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/876
- Update
base64crate and use it in place ofbase64-urlby @paolobarbolini in https://github.com/nats-io/nats.rs/pull/871 - Make
clientmodule public by @caspervonb in https://github.com/nats-io/nats.rs/pull/968 - Allow multiple auth methods by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/937
- Update nkeys to v0.3.0 by @vados-cosmonic in https://github.com/nats-io/nats.rs/pull/995
Misc
- Make
ClientOpprivate by @caspervonb in https://github.com/nats-io/nats.rs/pull/954 - Make
Commandprivate by @caspervonb in https://github.com/nats-io/nats.rs/pull/953 - Disallow non-alphanumeric in
HeaderName::from_strby @caspervonb in https://github.com/nats-io/nats.rs/pull/944 - Improve top level crate documentation by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/985
- Make
ClientOpprivate by @caspervonb in https://github.com/nats-io/nats.rs/pull/954 - Make
Commandprivate by @caspervonb in https://github.com/nats-io/nats.rs/pull/953 - Disallow new lines in
HeaderValue::from_strby @caspervonb in https://github.com/nats-io/nats.rs/pull/943 - Replace manual Error type declarations by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1005
- Document
HeaderMap::newby @caspervonb in https://github.com/nats-io/nats.rs/pull/981 - Reset ping interval on incoming and outgoing messages by @caspervonb in https://github.com/nats-io/nats.rs/pull/932
- Remove redundant serde
Serialize,Deserializeanddefaultattributes by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/929 - Improve top level
jetstreammodule documentation by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/990 - Improve JetStream KV documentation by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/991
- Bump rustls-webpki to v0.101.1 by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/1013
Thank you for all your contributions! Those make a difference and drive the ecosystem forward!
New Contributors
- @YaZasnyal made their first contribution in https://github.com/nats-io/nats.rs/pull/894
- @MJayat made their first contribution in https://github.com/nats-io/nats.rs/pull/901
- @matthiasbeyer made their first contribution in https://github.com/nats-io/nats.rs/pull/921
- @tinou98 made their first contribution in https://github.com/nats-io/nats.rs/pull/984
- @piotrpio made their first contribution in https://github.com/nats-io/nats.rs/pull/992
- @vados-cosmonic made their first contribution in https://github.com/nats-io/nats.rs/pull/995
- @protochron made their first contribution in https://github.com/nats-io/nats.rs/pull/1000
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.29.0...async-nats/v0.30.0
-
0.29.024 Mar 2023Release notes
Open source →Overview
This release focuses on preparing for the 1.0.0 release.
The main highlight is Core NATS concrete errors. There are also security improvements (@paolobarbolini thanks for your help!) and JetStream API improvements.
Concrete Errors
New errors returned by Core NATS methods are not boxed anymore. They themselves are not enums, but follow more flexible approach of
std::io::Errorand exposekind()method to get the enum. All enums implementPartialEqfor more straightforward assertions.Added
- Add support for stream subject transform by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/867
- Add retaining server list order option by @Jarema in https://github.com/nats-io/nats.rs/pull/890
Fixed
- Fix a typo in the documentation by @marcusirgens in https://github.com/nats-io/nats.rs/pull/864
- Fix reconnect burst on auth failure by @Jarema in https://github.com/nats-io/nats.rs/pull/890
Changed
- Concrete error types for Core NATS by @Jarema in https://github.com/nats-io/nats.rs/pull/632
- Improve TLS connection resilience by @Jarema in https://github.com/nats-io/nats.rs/pull/881
- Improve
batchandfetchpull consumer methods by @Jarema in https://github.com/nats-io/nats.rs/pull/862 - Make
Streama ref inPurgeby @n1ghtmare in https://github.com/nats-io/nats.rs/pull/877 - Cleanup dependencies by @paolobarbolini in https://github.com/nats-io/nats.rs/pull/872
- Make
Streama ref inPurgeby @n1ghtmare in https://github.com/nats-io/nats.rs/pull/877 - Use
MissedTickBehavior::Skipfor flush interval by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/880 - Use
MissedTickBehavior::Delayfor ping interval by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/885
New Contributors
- @marcusirgens made their first contribution in https://github.com/nats-io/nats.rs/pull/864
- @paolobarbolini made their first contribution in https://github.com/nats-io/nats.rs/pull/872
Once again, thanks @abalmos & @NorbertBodziony for helping out with replicating the issues around fetch. Also big thanks @paolobarbolini for the very detailed report and reproduction for TLS issue and @n1ghtmare for debugging Windows related issues.
Your contributions are invaluable to the NATS ecosystem.
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.28.0...async-nats/v0.29.0
-
0.28.003 Mar 2023Release notes
Open source →Overview
This release prepares the client for 2.10.0 server release and adds some fixes and improvements.
To use the new features before the server 2.10.0 release, enable
server_2_10feature.Breaking Changes
To enable NAK with backoff,
AckKind::NAKenum variant was changedWhat was before:
AckKind::Naknow is:
AckKind::Nak(Option<std::time::Duration>)Which means a standard NAK example
let message = messages.next().await?; message.ack_kind(AckKind::Nak).await?;Now should be used like this
let message = messages.next().await?; message.ack_kind(AckKind::Nak(None)).await?;or with custom NAK
message.ack_kind(AckKind::Nak(Some(std::time::Duration::from_secs(10))).await?;Consumer info cluster field is now
OptionThis field is provided only in clustered mode, so it's now properly inline with that.
Consumer
idle heartbeaterror does not terminate iteratorThis change does not require any action from the users who want to continue using client as they do now, but those who would like to try continuing working with consumer, even if it returned
idle heartbeats, now they can.Added
- Add support for consumers with multiple filters (feature
server_2_10) by @Jarema in https://github.com/nats-io/nats.rs/pull/814 - Add metadata support (feature
server_2_10) by @Jarema in https://github.com/nats-io/nats.rs/pull/837 - Add NAK and backoff support by @Jarema in https://github.com/nats-io/nats.rs/pull/839
Fixed
- Fix flapping ack test by @Jarema in https://github.com/nats-io/nats.rs/pull/842
- Fix Pull Fetch test by @Jarema in https://github.com/nats-io/nats.rs/pull/845
- Update consumer last_seen on status messages and requests by @Jarema in https://github.com/nats-io/nats.rs/pull/856
- Improve pull consumer robustness by @Jarema in https://github.com/nats-io/nats.rs/pull/858
Changed
- Make consumer info cluster field optional by @n1ghtmare in https://github.com/nats-io/nats.rs/pull/840
- Bump dependencies by @Jarema in https://github.com/nats-io/nats.rs/pull/848
- Idle Heartbeats now does not fuse the consumer iterator by @Jarema in https://github.com/nats-io/nats.rs/pull/856
Full Changelog: https://github.com/nats-io/nats.rs/compare/nats/v0.24.0...async-nats/v0.28.0
- Add support for consumers with multiple filters (feature
-
0.27.102 Feb 2023Release notes
Open source →Overview
A patch release focused solely on important fixes.
Fixed
- Fix no error when auth is not provided but required by @Jarema in https://github.com/nats-io/nats.rs/pull/822
- Fix flush after reconnecting by @Jarema in https://github.com/nats-io/nats.rs/pull/823
- Fix duplicate consumer creation by @thomastaylor312 in https://github.com/nats-io/nats.rs/pull/824
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.27.0...async-nats/v0.27.1
-
0.27.027 Jan 2023Release notes
Open source →Overview
The main focus of this release is Service API with support for multiple endpoints.
Added
- Add multiple endpoints service by @Jarema in https://github.com/nats-io/nats.rs/pull/791
- Add
VectoToServerAddrsimpl and improve docs examples by @Jarema in https://github.com/nats-io/nats.rs/pull/802 - Add
ignore_discovered_serversconnect option by @caspervonb in https://github.com/nats-io/nats.rs/pull/809
Changed
- Remove unsafe usages in async-nats by @zaynetro in https://github.com/nats-io/nats.rs/pull/813
- Explicitly delete consumer after iterating over kv keys by @Jarema in https://github.com/nats-io/nats.rs/pull/818
Fixed
- Fix key listing for async client to match Go client by @thomastaylor312 in https://github.com/nats-io/nats.rs/pull/792
New Contributors
- @thomastaylor312 made their first contribution in https://github.com/nats-io/nats.rs/pull/792
- @zaynetro made their first contribution in https://github.com/nats-io/nats.rs/pull/813
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.26.0...async-nats/v0.27.0
-
0.26.006 Jan 2023Release notes
Open source →Overview
This release introduces improvements around TLS handling which could cause issues with Windows systems, plus some other fixes and improvements.
Added
- Add streams list by @Jarema in https://github.com/nats-io/nats.rs/pull/785
- Add stream names list by @Jarema in https://github.com/nats-io/nats.rs/pull/783
- Add type to service responses by @Jarema in https://github.com/nats-io/nats.rs/pull/786
- Add kv example by @Jarema in https://github.com/nats-io/nats.rs/pull/784
-
0.25.123 Dec 2022Release notes
Open source →Overview
A hotfix release, changing
consumer::Info.clusterto not break serde whenclusteris not present (single server mode).Fixed
- Fix cluster field deserialization for consumer info by @Jarema in https://github.com/nats-io/nats.rs/pull/779
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.25.0...async-nats/v0.25.1
-
0.25.020 Dec 2022Release notes
Open source →Overview
This release focuses on
servicemodule, which leverages NATS primitives to provide API for creating and running horizontaly scalable microservices.Added
- Add Service API by @Jarema in https://github.com/nats-io/nats.rs/pull/748
- Ordered and convenient HeaderValue reported by @cortopy, implemented by @Jarema in https://github.com/nats-io/nats.rs/pull/767
Changed
- Always reset periodic flush interval after manual flush by @caspervonb in https://github.com/nats-io/nats.rs/pull/747
- Fuse the pull consumer Stream after terminal error by @Jarema in https://github.com/nats-io/nats.rs/pull/751
- Remove auth_required comment by @Jarema in https://github.com/nats-io/nats.rs/pull/763
- Change JetStream request timeout to 5 seconds by @Jarema in https://github.com/nats-io/nats.rs/pull/772
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.24.0...async-nats/v0.25.0
-
0.24.026 Nov 2022Release notes
Open source →Overview
This a minor release intended to release all changes before the long-awaited changes around concrete errors land.
What's Changed
- Fix various spelling mistakes by @c0d3x42 in https://github.com/nats-io/nats.rs/pull/735
- Add spellcheck by @Jarema in https://github.com/nats-io/nats.rs/pull/736
- Reset flush interval after ping forces flush by @caspervonb in https://github.com/nats-io/nats.rs/pull/737
- Add extended purge by @Jarema in https://github.com/nats-io/nats.rs/pull/739
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.23.0...async-nats/v0.24.0
-
0.23.018 Nov 2022Release notes
Open source →Overview
This release focuses on fixes around Object Store and customized JetStream Publish.
It also introduces a breaking change, as not all
publish()methods did returnPublishError, using the genericasync_nats::Errorinstead. This has been fixed.Breaking changes
- Make publish error types consistent by @Jarema in https://github.com/nats-io/nats.rs/pull/727
Fixed
- Fix object store watch to retrieve only new/changed values by @Jarema in https://github.com/nats-io/nats.rs/pull/720
- Fix stack overflow in object store by @Jarema in https://github.com/nats-io/nats.rs/pull/731
Added
- Add customizable JetStream publish by @Jarema in https://github.com/nats-io/nats.rs/pull/728 request by @andrenth
- Add object store list by @Jarema in https://github.com/nats-io/nats.rs/pull/721
- Add docs lint by @Jarema in https://github.com/nats-io/nats.rs/pull/725
-
0.22.111 Nov 2022Release notes
Open source →Overview
A patch release, including early feedback to 0.22.0.
Breaking Changes
Unfortunately, last release included a typo in
retry_on_initial_release. This patch fixes it. We decided to make a normal patch release without yanking as we're pre 1.0.0 verison. To avoid similar situations in the future, spellecheck lint will be added before next release.Changed
- Flush on publish ack await by @Jarema in https://github.com/nats-io/nats.rs/pull/708
Fixed
- Fix typo in retry_on_initial_connect by @Jarema in https://github.com/nats-io/nats.rs/pull/713
Added
- Setup cargo deny to check licenses by @corbinu in https://github.com/nats-io/nats.rs/pull/703
-
0.22.008 Nov 2022 withdrawnRelease notes
Open source →Overview
This release introduces a number of changes and two breaking changes:
JetStream publish
Used to return ack:
let ack = jetstream.publish().await.unwrap();But while adding publish that does not wait for acknowledgment before returning, we realized that we can leverage IntoFuture, so the new API is:
// This publishes the message, but do not wait until ack is received. let future_ack = jetstream.publish().await.unwrap(); // to receive the acknowledge, `await()` the returned value: let ack = future_ack.await().unwrap();Event logging
After adding initial retry on connect option,
Event::Reconnectdidn't make much sense. Hence it was renamed toEvent::Connected, which describes the current state without implications about the previous one. For consistency,Event::Disconnectwas renamed toEvent::Disconnected.Breaking changes
- Defer publish acknowledgments by @Jarema in https://github.com/nats-io/nats.rs/pull/644
- Add retry on initial connect by @Jarema in https://github.com/nats-io/nats.rs/pull/662
Added
- Add support for mirrors and sources in Key Value Store by @Jarema in https://github.com/nats-io/nats.rs/pull/676
- Add sources and mirror to stream config by @Jarema in https://github.com/nats-io/nats.rs/pull/673
- Add docs to client methods by @Jarema in https://github.com/nats-io/nats.rs/pull/664
- Add license to nats-server wrapper by @Jarema in https://github.com/nats-io/nats.rs/pull/704
Fixed
- Fix object store bucket names by @Jarema in https://github.com/nats-io/nats.rs/pull/697
- Fix event connected display by @Jarema in https://github.com/nats-io/nats.rs/pull/669
- Fix missing hearbeats future wakup by @Jarema in https://github.com/nats-io/nats.rs/pull/671
- Fix pull consumer without hearbeats by @Jarema in https://github.com/nats-io/nats.rs/pull/667
- Fix typos in async-nats docs by @jdon in https://github.com/nats-io/nats.rs/pull/663
- Fix clippy errors by @caspervonb in https://github.com/nats-io/nats.rs/pull/690
- Fix broken clippy pipeline and errors by @caspervonb in https://github.com/nats-io/nats.rs/pull/695
Changed
- Improve event logging by @Jarema in https://github.com/nats-io/nats.rs/pull/672
- Bump rustls-pemfile version by @paulgb in https://github.com/nats-io/nats.rs/pull/666
- Use get direct in KV by @Jarema in https://github.com/nats-io/nats.rs/pull/651
- Ordered consumer recreate & use mem_storage R1 by @Jarema in https://github.com/nats-io/nats.rs/pull/654
- Change event logs to info level by @Jarema in https://github.com/nats-io/nats.rs/pull/677
- Remove unused dependency on tokio-util by @caspervonb in https://github.com/nats-io/nats.rs/pull/679
- Merge periodic ping into connection handler loop by @caspervonb in https://github.com/nats-io/nats.rs/pull/681
- Update K/V purge documentation verbiage by @corbinu in https://github.com/nats-io/nats.rs/pull/688
- Make pull consumer having exact pending numbers by @Jarema in https://github.com/nats-io/nats.rs/pull/668
- Improve object get example by @Jarema in https://github.com/nats-io/nats.rs/pull/706
New Contributors
- @jdon made their first contribution in https://github.com/nats-io/nats.rs/pull/663
- @corbinu made their first contribution in https://github.com/nats-io/nats.rs/pull/688
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.21.0...async-nats/v0.22.0
-
0.21.006 Oct 2022Release notes
Open source →Overview
This release's highlight is added support for Object Store.
Breaking changes
- Add last_active to SequenceInfo and rename SequencePair to SequenceInfo by @Jarema in https://github.com/nats-io/nats.rs/pull/657
Added
- Add Object Store by @Jarema in https://github.com/nats-io/nats.rs/pull/655
- Add discard_new_per_subject to Stream by @Jarema in https://github.com/nats-io/nats.rs/pull/656
- Add republish to KV by @Jarema in https://github.com/nats-io/nats.rs/pull/653
- Add name option by @Jarema in https://github.com/nats-io/nats.rs/pull/659
Fixed
- Fix empty keys deadlock by @Jarema in https://github.com/nats-io/nats.rs/pull/641
- Fix lint error by @Jarema in https://github.com/nats-io/nats.rs/pull/645
- Fix benchmark in CI by @Jarema in https://github.com/nats-io/nats.rs/pull/647
- Fix potential pending pings mismatch on reconnects by @Jarema in https://github.com/nats-io/nats.rs/pull/650
- Fix typo (eror -> error) by @paulgb in https://github.com/nats-io/nats.rs/pull/652
- Remove println by @Jarema in https://github.com/nats-io/nats.rs/pull/658
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.20.0...async-nats/v0.21.0
-
0.20.015 Sep 2022Release notes
Open source →Overview
This release focuses on KV and 2.9 nats-server features.
Added
- Add Key Value by @Jarema and @caspervonb in https://github.com/nats-io/nats.rs/pull/586
- Add Direct get by @Jarema in https://github.com/nats-io/nats.rs/pull/636
- Add timeout to request & request builder by @Jarema in https://github.com/nats-io/nats.rs/pull/616
- Add memory storage option to consumers by @Jarema in https://github.com/nats-io/nats.rs/pull/638
- Add Consumer name by @Jarema in https://github.com/nats-io/nats.rs/pull/637
Fixed
- Fix heartbeat typo by @Jarema in https://github.com/nats-io/nats.rs/pull/630
What's Changed
- Headers refactor by @Jarema in https://github.com/nats-io/nats.rs/pull/629
- Use new Consumer API by @Jarema in https://github.com/nats-io/nats.rs/pull/637
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.19.0...async-nats/v0.20.0
-
0.19.002 Sep 2022Release notes
Open source →Overview
This release is focused on resilience of the client against network issues.
It also adds some utility methods, Stream Republish and improvements for Pull Consumers.
Added
- Add server info by @Jarema in https://github.com/nats-io/nats.rs/pull/600
- Add server compatibility check function by @Jarema in https://github.com/nats-io/nats.rs/pull/603
- Add stream info and cached_info by @Jarema in https://github.com/nats-io/nats.rs/pull/599
- Add custom request prefix option by @Jarema in https://github.com/nats-io/nats.rs/pull/604
- Add connection timeout by @thed0ct0r in https://github.com/nats-io/nats.rs/pull/607
- Add stream republish by @Jarema in https://github.com/nats-io/nats.rs/pull/613
- Add timeout to double_ack by @Jarema in https://github.com/nats-io/nats.rs/pull/617
- Add internal connection state watcher by @Jarema in https://github.com/nats-io/nats.rs/pull/606
- Add miss Pull Consumer heartbeats error by @Jarema in https://github.com/nats-io/nats.rs/pull/627
- Add purge subject by @Jarema in https://github.com/nats-io/nats.rs/pull/620
Fixed
- Fix jetstream reconnect by @Jarema in https://github.com/nats-io/nats.rs/pull/610
- Fix typos in readme's by @insmo in https://github.com/nats-io/nats.rs/pull/618
- Fix voldemort error by @Jarema in https://github.com/nats-io/nats.rs/pull/626
- Jarema/fix pull consumer deadlock by @Jarema in https://github.com/nats-io/nats.rs/pull/619
Thanks to all contributors for helping out, taking part in discussion and detailed issue reports!
New Contributors
- @thed0ct0r made their first contribution in https://github.com/nats-io/nats.rs/pull/607
- @insmo made their first contribution in https://github.com/nats-io/nats.rs/pull/618
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.18.0...async-nats/v0.19.0
-
0.18.007 Aug 2022Release notes
Open source →Overview
This release focuses on fixes and improvements, with addition of ordered Push Consumer.
Breaking Changes
- Refactor callbacks by @Jarema in https://github.com/nats-io/nats.rs/pull/595
Added
- Add
get_last_raw_message_by_subjecttoStreamby @caspervonb in https://github.com/nats-io/nats.rs/pull/584 - Add
ClusterInfoandPeerInfoby @Jarema in https://github.com/nats-io/nats.rs/pull/572 - Add ordered push consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/574
- Add concurrent example by @Jarema in https://github.com/nats-io/nats.rs/pull/580
- Add delete message from stream by @Jarema in https://github.com/nats-io/nats.rs/pull/588
- Add Nkey authorization support by @neogenie https://github.com/nats-io/nats.rs/pull/593
Fixed
- Fix ordered consumer after discard policy hit by @Jarema in https://github.com/nats-io/nats.rs/pull/585
- Fix pull consumer stream method when batch is set to 1 by @Jarema in https://github.com/nats-io/nats.rs/pull/590
- Fix reconnect auth deadlock by @caspervonb in https://github.com/nats-io/nats.rs/pull/578
-
0.17.013 Jul 2022Release notes
Open source →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
Streamiterator toMessagesby @caspervonb in https://github.com/nats-io/nats.rs/pull/566 - Add pull builder for Fetch and Batch by @Jarema in https://github.com/nats-io/nats.rs/pull/565
Fixed
- Fix slow connect in no-auth scenarios by @Jarema in https://github.com/nats-io/nats.rs/pull/568
Other
- Fix license headers by @Jarema in https://github.com/nats-io/nats.rs/pull/564
- Add missing module docs headers by @Jarema in https://github.com/nats-io/nats.rs/pull/563
- Remove fault injection run from workflow by @caspervonb in https://github.com/nats-io/nats.rs/pull/567
Full Changelog: https://github.com/nats-io/nats.rs/compare/async-nats/v0.16.0...async-nats/v0.17.0
-
0.16.010 Jul 2022Release notes
Open source →This release features a lot of improvements and additions to
JetStreamAPI and addsPush Consumer.Added
- Add
query_accounttojetstream::Contextby @caspervonb in https://github.com/nats-io/nats.rs/pull/528 - Add streams to push consumers by @caspervonb in https://github.com/nats-io/nats.rs/pull/527
- Add no_echo option by @Jarema in https://github.com/nats-io/nats.rs/pull/560
- Add
jetstream::Stream::get_raw_messageby @caspervonb in https://github.com/nats-io/nats.rs/pull/484 - Add Pull Consumer builder by @Jarema in https://github.com/nats-io/nats.rs/pull/541
Changed
- Allow unknown directives to be skipped when parsing by @caspervonb in https://github.com/nats-io/nats.rs/pull/514
- Narrow error type returned from client publishing by @caspervonb in https://github.com/nats-io/nats.rs/pull/525
- Change
create_consumerto returnConsumerby @Jarema in https://github.com/nats-io/nats.rs/pull/544 - Switch webpki to rustls-native-certs by @Jarema in https://github.com/nats-io/nats.rs/pull/558
- Normalize error type used in subscribe methods by @caspervonb in https://github.com/nats-io/nats.rs/pull/524
- Optimize
jetstream::consumer::pull::Consumer::streammethod. by @Jarema in https://github.com/nats-io/nats.rs/pull/529 - Make
deliver_subjectrequired forpush::Configby @caspervonb in https://github.com/nats-io/nats.rs/pull/531
Fixed
- Handle missing error cases in Stream by @Jarema in https://github.com/nats-io/nats.rs/pull/542
- Handle connecting to ipv6 addresses correctly by @jszwedko in https://github.com/nats-io/nats.rs/pull/386
Other
- Move
Clientinto its own source file by @caspervonb in https://github.com/nats-io/nats.rs/pull/523 - Extract
jetstream::Messageinto its own module by @caspervonb in https://github.com/nats-io/nats.rs/pull/534 - Normalize introduction example by @caspervonb in https://github.com/nats-io/nats.rs/pull/540
- Fix documentation links by @Jarema in https://github.com/nats-io/nats.rs/pull/547
- Add more documentation to Pull Consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/546
- Add Push Consumer stream docs by @Jarema in https://github.com/nats-io/nats.rs/pull/559
- Fix ack test race by @Jarema in https://github.com/nats-io/nats.rs/pull/555
- Add Message and Headers docs by @Jarema in https://github.com/nats-io/nats.rs/pull/548
- Remove trace and debug from nats-server wrapper by @Jarema in https://github.com/nats-io/nats.rs/pull/550
- Add
-
0.15.017 Jun 2022Release notes
Open source →This release is the first
JetStream🍾 feature set forasync-nats!It includes:
- New simplified JetStream API approach
- JetStream Publish
- Streams management
- Consumers Management
- Pull Consumers implementation
- Ack's
Warning: JetStream support is experimental and may change
Added
- Add JetStream types and basics by @Jarema in https://github.com/nats-io/nats.rs/pull/457
- Add get stream by @Jarema in https://github.com/nats-io/nats.rs/pull/458
- Add jetstream stream delete and stream update by @Jarema in https://github.com/nats-io/nats.rs/pull/459
- Add
async_nats::jetstream::Context::publishby @caspervonb in https://github.com/nats-io/nats.rs/pull/460 - Add get_or_create JetStream management API by @Jarema in https://github.com/nats-io/nats.rs/pull/467
- Add domain and prefix by @Jarema in https://github.com/nats-io/nats.rs/pull/490
- Add error codes to
Response::Errorvariant by @caspervonb in https://github.com/nats-io/nats.rs/pull/496 - Add JetStream ACK by @Jarema in https://github.com/nats-io/nats.rs/pull/515
- Add convinience methods to Consumer management by @Jarema in https://github.com/nats-io/nats.rs/pull/481
- Add Pull Consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/479
- Add create consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/471
- Add stream to pull consumers by @caspervonb in https://github.com/nats-io/nats.rs/pull/518
- Add Consumer::info and Consumer::cached_info by @Jarema in https://github.com/nats-io/nats.rs/pull/510
- Introduce a
StatusCodetype to represent statuses by @caspervonb in https://github.com/nats-io/nats.rs/pull/474 - Add example for multiple pub/subs in tasks by @Jarema in https://github.com/nats-io/nats.rs/pull/453
- Implement jetstream requests by @caspervonb in https://github.com/nats-io/nats.rs/pull/435
- Add
async_nats::jetstream::Context::publish_with_headersby @caspervonb in https://github.com/nats-io/nats.rs/pull/462 - Implement
From<jetstream::Message>forMessageby @caspervonb in https://github.com/nats-io/nats.rs/pull/512 - Add get_or_create_consumer and delete_consumer by @Jarema in https://github.com/nats-io/nats.rs/pull/475
- Have No async-stream dependant implementation for Pull Consumers by @caspervonb in https://github.com/nats-io/nats.rs/pull/499
Changed
- Do not flush in write calls by @caspervonb in https://github.com/nats-io/nats.rs/pull/423
- Only retain non-closed subscriptions on reconnect by @caspervonb in https://github.com/nats-io/nats.rs/pull/454
Fixed
- Fix off by one error that can occur parsing "HMSG" by @caspervonb in https://github.com/nats-io/nats.rs/pull/513
- Removed attempt to connect to server info host when TLS is enabled by @brooksmtownsend in https://github.com/nats-io/nats.rs/pull/500
-
0.14.025 May 2022Release notes
Open source →Added
- Add no responders handling by @Jarema in https://github.com/nats-io/nats.rs/pull/450
- Add client jwt authentication by @stevelr in https://github.com/nats-io/nats.rs/pull/433
- Add lame duck mode support by @Jarema in https://github.com/nats-io/nats.rs/pull/438
- Add slow consumers support by @Jarema in https://github.com/nats-io/nats.rs/pull/444
- Add tracking maximum number of pending pings by @caspervonb https://github.com/nats-io/nats.rs/pull/419
Changed
Clientdoesn't need to be mutable self by @stevelr in https://github.com/nats-io/nats.rs/pull/434- Make send buffer configurable by @Jarema in https://github.com/nats-io/nats.rs/pull/437
-
0.13.005 May 2022Release notes
Open source →Added
- Add Auth - username/password & token by @Jarema in https://github.com/nats-io/nats.rs/pull/408
- Support sending and receiving messages with headers by @caspervonb in https://github.com/nats-io/nats.rs/pull/402
- Add async server errors callbacks by @Jarema in https://github.com/nats-io/nats.rs/pull/397
- Discover additional servers via INFO by @caspervonb in https://github.com/nats-io/nats.rs/pull/403
- Resolve socket addresses during connect by @caspervonb in https://github.com/nats-io/nats.rs/pull/403
Changed
- Wait between reconnection attempts by @caspervonb in https://github.com/nats-io/nats.rs/pull/407
- Limit connection attempts by @caspervonb in https://github.com/nats-io/nats.rs/pull/400
Other
- Remove redundant doctests by @Jarema in https://github.com/nats-io/nats.rs/pull/412
- Fix connection callback tests by @Jarema in https://github.com/nats-io/nats.rs/pull/420
-
0.12.028 Apr 2022Release notes
Open source →Added
- Add more examples and docs by @Jarema in https://github.com/nats-io/nats.rs/pull/372
- Add unsubscribe by @Jarema in https://github.com/nats-io/nats.rs/pull/363
- Add unsubscribe_after by @Jarema in https://github.com/nats-io/nats.rs/pull/385
- Add queue subscriber and unit test by @stevelr in https://github.com/nats-io/nats.rs/pull/388
- Implement reconnect by @caspervonb in https://github.com/nats-io/nats.rs/pull/382
Other
- Fix test linter warnings by @caspervonb in https://github.com/nats-io/nats.rs/pull/379
- Fix tests failing with nats-server 2.8.0 by @Jarema in https://github.com/nats-io/nats.rs/pull/380
- Use local server for documentation tests by @caspervonb in https://github.com/nats-io/nats.rs/pull/377
- Improve workflow caching by @caspervonb in https://github.com/nats-io/nats.rs/pull/381
- Fix typo in README.md by @mgrachev in https://github.com/nats-io/nats.rs/pull/384
- Internal Architecture overhaul by @caspervonb and @Jarema
-
0.11.017 Apr 2022Release notes
Open source →Initial release of async NATS client rewrite. 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 async client.
-
0.10.121 Jul 2021Nothing published for this version
-
0.10.021 Jul 2021Nothing published for this version
-
0.9.1831 May 2021Nothing published for this version
-
0.9.1719 May 2021Nothing published for this version
-
0.9.1629 Apr 2021Nothing published for this version
-
0.9.1529 Apr 2021Nothing published for this version
-
0.9.1422 Apr 2021Nothing published for this version
-
0.9.1322 Apr 2021Nothing published for this version
-
0.9.1212 Apr 2021Nothing published for this version
-
0.9.1112 Apr 2021Nothing published for this version
-
0.9.1012 Apr 2021Nothing published for this version