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-rsfunctionality - The client has been removed and superceded by common
ClusterClient - Renamed
ConnectiontoClusterConnection - 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 forAsyncIterhave 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
MultiplexedConnectionandConnectionManager(#811 @nihohit) - Refactor / remove flaky test (#810)
cluster_async: renameConnectiontoClusterConnection,PipelinetoClusterConnInner(#808)- Support parsing IPV6 cluster nodes (#796 @socs)
- Common client for sync/async cluster connections (#798)
cluster::ClusterConnectionunderlying connection type is now generic (with existing type as default)- Support
read_from_replicasin 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)