Skip to content

Releases: redis-rs/redis-rs

v0.25.3

04 Apr 05:21
Compare
Choose a tag to compare

0.25.3 (2024-04-04)

  • Handle empty results in multi-node operations (#1099)

v0.25.2

16 Mar 17:18
Compare
Choose a tag to compare

0.25.2 (2024-03-15)

  • MultiplexedConnection: Separate response handling for pipeline. (#1078)

v0.25.1

13 Mar 04:36
b179ea1
Compare
Choose a tag to compare

0.25.1 (2024-03-12)

v0.25.0

09 Mar 16:31
Compare
Choose a tag to compare

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

05 Dec 15:32
37ba561
Compare
Choose a tag to compare

0.24.0 (2023-12-05)

Features

  • Breaking change: Support Mutual TLS (#858 @sp-angel)
  • Implement FromRedisValue for Box<[T]> and Arc<[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

01 Sep 14:18
85960f4
Compare
Choose a tag to compare

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

  • Add key_type command (#933 @bruaba)
  • Async cluster: Group responses by response_policy. (#888)

Fixes

  • Remove unnecessary heap allocation (#939 @thechampagne)
  • Sentinel tests: Ensure no ports are used twice (#915)
  • Fix lint issues (#937)
  • Fix JSON serialization error test (#928)
  • Remove unused dependencies (#916)

v0.23.2

12 Aug 17:36
fe2a7df
Compare
Choose a tag to compare

0.23.2 (2023-08-10)

Fixes

  • Fix sentinel tests flakiness (#912)
  • Rustls: Remove usage of deprecated method (#921)
  • Fix compiling with sentinel feature, without aio feature (#922 @brocaar)
  • Add timeouts to tests github action (#911)

v0.23.1

28 Jul 05:21
cbe47c6
Compare
Choose a tag to compare

0.23.1 (2023-07-28)

Features

Changes

v0.23.0

05 Apr 15:12
e35dc51
Compare
Choose a tag to compare

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 to ClusterConnection
  • 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 for AsyncIter 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 / deprecate set_multiple (#766 @randomairborne)
  • More efficient interfaces for MultiplexedConnection and ConnectionManager (#811 @nihohit)
  • Refactor / remove flaky test (#810)
  • cluster_async: rename Connection to ClusterConnection, Pipeline to ClusterConnInner (#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)

v0.22.3

24 Jan 23:46
Compare
Choose a tag to compare

0.22.3 (2023-01-23)

Fixes regression in 0.22.2 related to removed ClusterConnection::check_connection method. Thanks to @robjtede for identifying and fixing!

Changes

  • Restore inherent ClusterConnection::check_connection() method (#758 @robjtede)