Releases: redis-rs/redis-rs
v0.25.3
v0.25.2
v0.25.1
v0.25.0
0.25.0 (2024-03-08)
Features
- Breaking change: Add connection timeout to the cluster client (#834)
- Breaking change: Deprecate aio::Connection (#889)
- Cluster: fix read from replica & missing slots (#965)
- Async cluster connection: Improve handling of missing connections (#968)
- Add support for parsing to/from any sized arrays (#981)
- Upgrade to rustls 0.22 (#1000 @djc)
- add SMISMEMBER command (#1002 @Zacaria)
- Add support for some big number types (#1014 @AkiraMiyakoda)
- Add Support for UUIDs (#1029 @Rabbitminers)
- Add FromRedisValue::from_owned_redis_value to reduce copies while parsing response (#1030 @Nathan-Fenner)
- Save reconnected connections during retries (#1033)
- Avoid panic on connection failure (#1035)
- add disable client setinfo feature and its default mode is off (#1036 @Ggiggle)
- Reconnect on parsing errors (#1051)
- preallocate buffer for evalsha in Script (#1044 @framlog)
Changes
- Align more commands routings (#938)
- Fix HashMap conversion (#977 @mxbrt)
- MultiplexedConnection: Remove unnecessary allocation in send (#990)
- Tests: Reduce cluster setup flakiness (#999)
- Remove the unwrap_or! macro (#1010)
- Remove allocation from command function (#1008)
- Catch panics from task::spawn in tests (#1015)
- Fix lint errors from new Rust version (#1016)
- Fix warnings that appear only with native-TLS (#1018)
- Hide the req_packed_commands from docs (#1020)
- Fix documentaion error (#1022 @rcl-viveksharma)
- Fixes minor grammar mistake in json.rs file (#1026 @RScrusoe)
- Enable ignored pipe test (#1027)
- Fix names of existing async cluster tests (#1028)
- Add lock file to keep MSRV constant (#1039)
- Fail CI if lock file isn't updated (#1042)
- impl Clone/Copy for SetOptions (#1046 @ahmadbky)
- docs: add "connection-manager" cfg attr (#1048 @DCNick3)
- Remove the usage of aio::Connection in tests (#1049)
- Fix new clippy lints (#1052)
- Handle server errors in array response (#1056)
- Appease Clippy (#1061)
- make Pipeline handle returned bulks correctly (#1063 @framlog)
- Update mio dependency due to vulnerability (#1064)
- Simplify Sink polling logic (#1065)
- Separate parsing errors from general response errors (#1069)
v0.24.0
0.24.0 (2023-12-05)
Features
- Breaking change: Support Mutual TLS (#858 @sp-angel)
- Implement
FromRedisValue
forBox<[T]>
andArc<[T]>
(#799 @JOT85) - Sync Cluster: support multi-slot operations. (#967)
- Execute multi-node requests using try_request. (#919)
- Sorted set blocking commands (#962 @gheorghitamutu)
- Allow passing routing information to cluster. (#899)
- Add
tcp_nodelay
feature (#941 @PureWhiteWu) - Add support for multi-shard commands. (#900)
Changes
- Order in usage of ClusterParams. (#997)
- Breaking change: Fix StreamId::contains_key signature (#783 @Ayush1325)
- Breaking change: Update Command expiration values to be an appropriate type (#589 @joshleeb)
- Breaking change: Bump aHash to v0.8.6 (#966 @aumetra)
- Fix features for
load_native_certs
. (#996) - Revert redis-test versioning changes (#993)
- Tests: Add retries to test cluster creation (#994)
- Fix sync cluster behavior with transactions. (#983)
- Sync Pub/Sub - cache received pub/sub messages. (#910)
- Prefer routing to primary in a transaction. (#986)
- Accept iterator at
ClusterClient
initialization (#987 @ruanpetterson) - Breaking change: Change timeouts from usize and isize to f64 (#988 @eythorhel19)
- Update minimal rust version to 1.6.5 (#982)
- Disable JSON module tests for redis 6.2.4. (#980)
- Add connection string examples (#976 @NuclearOreo)
- Move response policy into multi-node routing. (#952)
- Added functions that allow tests to check version. (#963)
- Fix XREADGROUP command ordering as per Redis Docs, and compatibility with Upstash Redis (#960 @prabhpreet)
- Optimize make_pipeline_results by pre-allocate memory (#957 @PureWhiteWu)
- Run module tests sequentially. (#956)
- Log cluster creation output in tests. (#955)
- CI: Update and use better maintained github actions. (#954)
- Call CLIENT SETINFO on new connections. (#945)
- Deprecate functions that erroneously use
tokio
in their name. (#913) - CI: Increase timeouts and use newer redis. (#949)
- Remove redis version from redis-test. (#943)
v0.23.3
0.23.3 (2023-09-01)
Note that this release fixes a small regression in async Redis Cluster handling of the PING
command.
Based on updated response aggregation logic in #888, it
will again return a single response instead of an array.
Features
Fixes
v0.23.2
v0.23.1
0.23.1 (2023-07-28)
Features
- Add basic Sentinel functionality (#836 @felipou)
- Enable keep alive on tcp connections via feature (#886 @DoumanAsh)
- Support fan-out commands in cluster-async (#843 @nihohit)
- connection_manager: retry and backoff on reconnect (#804 @nihohit)
Changes
- Tests: Wait for all servers (#901 @barshaul)
- Pin
tempfile
dependency (#902) - Update routing data for commands. (#887 @nihohit)
- Add basic benchmark reporting to CI (#880)
- Add
set_options
cmd (#879 @RokasVaitkevicius) - Move random connection creation to when needed. (#882 @nihohit)
- Clean up existing benchmarks (#881)
- Improve async cluster client performance. (#877 @nihohit)
- Allow configuration of cluster retry wait duration (#859 @nihohit)
- Fix async connect when ns resolved to multi ip (#872 @hugefiver)
- Reduce the number of unnecessary clones. (#874 @nihohit)
- Remove connection checking on every request. (#873 @nihohit)
- cluster_async: Wrap internal state with Arc. (#864 @nihohit)
- Fix redirect routing on request with no route. (#870 @nihohit)
- Amend README for macOS users (#869 @sarisssa)
- Improved redirection error handling (#857)
- Fix minor async client bug. (#862 @nihohit)
- Split aio.rs to separate files. (#821 @nihohit)
- Add time feature to tokio dependency (#855 @robjtede)
- Refactor cluster error handling (#844)
- Fix unnecessarily mutable variable (#849 @kamulos)
- Newtype SlotMap (#845)
- Bump MSRV to 1.60 (#846)
- Improve error logging. (#838 @nihohit)
- Improve documentation, add references to
redis-macros
(#769 @daniel7grant) - Allow creating Cmd with capacity. (#817 @nihohit)
v0.23.0
This release adds the cluster_async
module, which introduces async Redis Cluster support. The code therein is largely taken from @Marwes's redis-cluster-async crate, which itself appears to have started from a sync Redis Cluster mplementation started by @atuk721. In any case, thanks to @Marwes and @atuk721 for the great work, and we hope to keep development moving forward in redis-rs
.
This release also adds support for Rustls, a long-sought feature. Thanks to @rharish101 and @LeoRowan for getting this in! Note that the tls
and async-std-tls-comp
features have been deprecated and replaced by tls-native-tls
and async-std-native-tls-comp
, respectively.
Though async Redis Cluster functionality for the time being has been kept as close to the originating crate as possible, previous users of
redis-cluster-async
should note the following changes:
- Retries, while still configurable, can no longer be set to
None
/infinite retries - Routing and slot parsing logic has been removed and merged with existing
redis-rs
functionality - The client has been removed and superceded by common
ClusterClient
- Renamed
Connection
toClusterConnection
- Added support for reading from replicas
- Added support for insecure TLS
- Added support for setting both username and password
Breaking Changes
- Fix long-standing bug related to
AsyncIter
's stream implementation in which polling the server
for additional data yielded broken data in most cases. Type bounds forAsyncIter
have changed slightly,
making this a potentially breaking change. (#597 @Roger)
Changes
- Update Rustls to v0.21.0 (#820 @rharish101)
- Implement support for Rustls (#725 @rharish101, @LeoRowan)
- Commands: Add additional generic args for key arguments (#795 @MaxOhn)
- Add
mset
/ deprecateset_multiple
(#766 @randomairborne) - More efficient interfaces for
MultiplexedConnection
andConnectionManager
(#811 @nihohit) - Refactor / remove flaky test (#810)
cluster_async
: renameConnection
toClusterConnection
,Pipeline
toClusterConnInner
(#808)- Support parsing IPV6 cluster nodes (#796 @socs)
- Common client for sync/async cluster connections (#798)
cluster::ClusterConnection
underlying connection type is now generic (with existing type as default)- Support
read_from_replicas
in cluster_async - Set retries in
ClusterClientBuilder
- Add mock tests for
cluster
- cluster-async common slot parsing(#793)
- Support async-std in cluster_async module (#790)
- Async-Cluster use same routing as Sync-Cluster (#789)
- Add Async Cluster Support (#696)
- Fix broken json-module tests (#786)
cluster
: Tls Builder support / simplify cluster connection map (#718 @0xWOF, @utkarshgupta137)