NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3451 most downloaded on crates.io
An async client for Redis and Valkey.
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 4 months
Most releases are documented
notes for 48 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
100 releases · first in 2017
Add dynamic pool Add TCP user timeouts
DynamicPool interfaceactix-web exampletcp-user-timeouts feature flagFix unresponsive checks with blocked connections
quit when called concurrently by multiple tasksOne column per quarter.
Support SCAN functions in mocks
Fix intermittent transaction timeouts
Fix reconnection errors when no connections exist
Remove deprecated or redundant config options
Redis prefixesWITHSCORES to ZRANK and ZREVRANKGT|LT|NX|XX options to EXPIRE and EXPIREATscan_page interfacePINGi-hexpire feature flagon_* event handler functionsrustls-native-certs to 0.8valkey:// scheme in Config::from_url.Options and Replicas clientsRedis prefixesWITHSCORES to ZRANK and ZREVRANKGT|LT|NX|XX options to EXPIRE and EXPIREATscan_page interfacePINGi-hexpire feature flagon_* event handler functionsrustls-native-certs to 0.8valkey:// scheme in Config::from_url.Options and Replicas clientsThis update contains some significant performance improvements in the form of reduced Tokio scheduling overhead and reduced memory usage during the frame encoding process. It also contains several cosmetic changes designed to support future scenarios where Valkey and Redis start to diverge from one another.
The compiler should guide callers through most of these changes.
auto_pipeline config option was removed. All clients now automatically pipeline commands across Tokio tasks.BackpressureConfig struct was removed. Callers should use max_command_buffer_len instead.HEXPIRE, HTTL, etc, commands are now gated by an i-hexpire feature flag. Note that this requires Redis >
=7.2.5.ReplicaConfig fields were removed. The client now uses the associated ReconnectPolicy
fields instead, where applicable.types module was becoming too large and needed refactoring. Many types were moved to submodules, which likely
requires changes to certain import statements.Redis prefix, such as RedisConfig, RedisClient,
RedisPool, etc.rustls-native-certs was upgraded to 8.x.specialize-into-bytes feature flag was removed. This is now the default behavior.on_error and error_rx event handler interface now contains an optional server identifier.fred spawned a separate task per connection in order to read from all sockets concurrently. In 10.0.0
each client reads and writes to all connections in a single task.Change scanning functions to automatically continue when the current page is dropped
scan_buffered and scan_cluster_buffered interfacesspecialize-into-bytes feature flagAdd SETNX , ECHO , TYPE , EXPIRETIME , and PEXPIRETIME commands
SETNX, ECHO, TYPE, EXPIRETIME, and PEXPIRETIME commandsHTTL, HEXPIRE, etc)active_connections to preempt reconnectionsFix docs.rs documentation features
Add initial support for the Glommio runtime
credential-provider featureFix FT.AGGREGATE command with SORTBY operation
FT.AGGREGATE command with SORTBY operationFix tracing span names and missing fields
Adapt testing and CI processes to test Redis and Valkey
FromIterator impl to RedisMapExclusivePool clientredis+unix config URLs for Unix domain socketsPEXPIRE and PEXPIREATtrust-dns-resolver with hickory-resolverFix rustls reexports with enable-rustls-ring
bytes_utils min versionenable-rustls-ringAdd enable-rustls-ring feature flag
enable-rustls-ring feature flag* Fix partial-tracing imports
partial-tracing importsThis version should reduce compilation times for most use cases.
This version should reduce compilation times for most use cases.
rustls to 0.23redis-protocol to 5.0.0ClusterDiscoveryPolicy configuration options.SORT and SORT_ROcluster_hash policy to OptionsClusterDiscoveryPolicy.codec feature was also moved
to redis-protocol.rustls/ring.Add TransactionInterface to RedisPool
TransactionInterface to RedisPoolAdd conversion from HashMap to MultipleOrderedPairs.
HashMap to MultipleOrderedPairs.lazy_static* Fix tracing span annotations.
Box large futures to reduce stack usage.
Fix cluster replica failover at high concurrency.
Add a shorthand init interface.
init interface.Using ..Default::default() with the various configuration structs can avoid most of the breaking changes here.
globals interface.fail_fast flag to commands.Using ..Default::default() with the various configuration structs can avoid most of the breaking changes here.
Notable changes:
globals to ConnectionConfig and PerformanceConfig.ignore-auth-errorpool-prefer-activereconnect-on-auth-errorauto-client-setnameon_message and on_keyspace_event functions were renamed and moved to the EventInterface. They now use the
same naming conventions as the other event streams.Fix intermittent cluster routing errors
Fix cluster failover in transactions
Fix panic when reconnect delay jitter is 0
RedisValue and MultipleKeysCLIENT ID checks optionalAdded a new client builder and configuration interface.
globals interface.Resolve interface.with_options command configuration interface.no-client-setname feature flag with auto-client-setname.serde_json::Value -> RedisValue type conversion logic.
RedisValue -> serde_json::Value type conversion logic was not changed.RedisPool interface.on_* functions into a new EventInterface.Replica routing implementation.FromRedis type conversion rules. See below or the FromRedis docs for more information.Notable interface changes:
ArcStr has been replaced with bytes_utils::Str.std::time::Duration.with_options
interface.RedisPool interface now directly implements ClientLike rather than relying on Deref shenanigans.on_* event functions were moved and renamed. Reconnection events now include the associated Server.tls_server_name field on Server is now properly gated by the TLS feature flags.Notable implementation Changes:
Pipeline and Transaction structs can now be reused. Calling exec, all, last, or try_all no longer drains
the inner command buffer.FromRedis trait implemented a few inconsistent or ambiguous type conversions policies.
default-nil-types feature flag.FromRedis docs or see the unit tests
in responses.connect function can now be called more than once to force reset all client state.Nothing published for this version
Fix a bug with connection errors unexpectedly ending the connection task.
Move pretty-env-logger to dev-dependencies
pretty-env-logger to dev-dependenciesFix cluster replica discovery with Elasticache
READONLY usagefull-tracingVec<(T1, T2, ...)> with FromRedisFix cluster failover with paused nodes
* Add Pipeline::try_all * Add missing pubsub commands * Improve docs, examples
Pipeline::try_allAdd a client tracking interface.
impl StreamInterface for TransactionRedisClient command traits to SubscriberClientPotentially breaking changes in 6.x:
Pipeline interface for pipelining commands within a task.Replica client for interacting with replica nodes.Transaction interface to buffer commands in memory before EXEC/DISCARD.functions interface.Script, Library, and Function structs.Message and MessageKind pubsub structs.native-tls interface to support fully customizable TLS configurations.rustls support.
Potentially breaking changes in 6.x:
(String, u16) tuples to the Server struct for all server identifiers.enable-rustls and enable-native-tls.
vendored-tls is now vendored-opensslTransaction commands are now buffered in memory before calling exec() or discard().Drain policy. This is now the default.BackpressurePolicy::Sleep.RedisConfig.Message instead of (String, RedisValue) tuples.on_* family of functions to return
a BroadcastReceiver.FromRedis trait converts RedisValue::Null to "nil" with String and Str.Nothing published for this version
Nothing published for this version
Nothing published for this version
Reduce number of tokio features
tokio featuresfrom_urlAdd no-client-setname feature flag
redis-protocol and nomno-client-setname feature flagSupport URL parsing into a RedisConfig
RedisConfigbzpopmin and bzpopmax return typemocks featureRewrite the protocol parser, so it can decode frames without moving or copying the underlying bytes
globals to client-specific config structsserde-json featureFix https://github.com/aembke/fred.rs/issues/27
Fix authentication bug with sentinel-auth tests
sentinel-auth testssentinel-auth feature* Add sentinel-auth feature
sentinel-auth featureAdd NotFound error kind variant
NotFound error kind variantNotFound errors when casting nil server responses to non-nullable typesRemove some unnecessary async locks
wait_for_connect implementationFix https://github.com/aembke/fred.rs/issues/11
* Support Sentinel clients * Fix broken doc links
Move metrics behind compiler flag
Add generic response interface.
See below.
See below.
Add support for the MONITOR command.
MONITOR command.Redo cluster state change implementation to diff CLUSTER NODES changes
CLUSTER NODES changesExtend and refactor RedisConfig options
Add hyperloglog, geo, acl, memory, slowlog, and cluster command support
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →