- Fix cluster replica discovery with Elasticache
- Fix cluster replica
READONLY
usage
- Fix cluster failover with paused nodes
- Add
Pipeline::try_all
- Add missing pubsub commands
- Improve docs, examples
- Add a client tracking interface.
- Add a global config value for broadcast channel capacity.
- Add an interface to interact with individual cluster nodes.
- Fix missing
impl StreamInterface for Transaction
- Add all
RedisClient
command traits toSubscriberClient
- Refactored the connection and protocol layer.
- Add a manual
Pipeline
interface for pipelining commands within a task. - Add a
Replica
client for interacting with replica nodes. - Rework the
Transaction
interface to buffer commands in memory before EXEC/DISCARD. - Rework the cluster discovery and failover implementation.
- Rework the MOVED/ASK implementation to more quickly and reliably follow cluster redirects.
- Rework the sentinel interface to more reliably handle failover scenarios.
- Fix several bugs related to detecting closed connections.
- Support the
functions
interface. - Add
Script
,Library
, andFunction
structs. - Add
Message
andMessageKind
pubsub structs. - Add a DNS configuration interface.
- Rework the
native-tls
interface to support fully customizable TLS configurations. - Add
rustls
support.- Note: both TLS feature flags can be used at the same time.
- Add a mocking layer interface.
Potentially breaking changes in 6.x:
- Switched from
(String, u16)
tuples to theServer
struct for all server identifiers. - New TLS feature flags:
enable-rustls
andenable-native-tls
.vendored-tls
is nowvendored-openssl
- New TLS configuration process: see the example.
- New transaction interface.
Transaction
commands are now buffered in memory before callingexec()
ordiscard()
.
- New backpressure configuration options, most notably the
Drain
policy. This is now the default. - Changed the type and fields on
BackpressurePolicy::Sleep
. - New custom command interface for managing cluster hash slots.
- Removed or renamed some fields on
RedisConfig
. - Changed the pubsub receiver interface to use
Message
instead of(String, RedisValue)
tuples. - Changed the
on_*
family of functions to return a BroadcastReceiver. - The
FromRedis
trait convertsRedisValue::Null
to"nil"
withString
andStr
.
- Reduce number of
tokio
features - Use 6379 as default cluster port in
from_url
- Fix RESP3 auth error (aembke#54)
- Reduce number of
tokio
features - Use 6379 as default cluster port in
from_url
- Fix RESP3 auth error (aembke#54)
- Reduce number of
tokio
features - Use 6379 as default cluster port in
from_url
- Fix RESP3 auth error (aembke#54)
- Update
redis-protocol
andnom
- Add
no-client-setname
feature flag
- Bug fixes
- Support URL parsing into a
RedisConfig
- Update
bzpopmin
andbzpopmax
return type - Remove unimplemented
mocks
feature
- Rewrite the protocol parser so it can decode frames without moving or copying the underlying bytes
- Change most command implementations to avoid unnecessary allocations when using static str slices
- Rewrite the public interface to use different traits for different parts of the redis interface
- Relax some restrictions on certain commands being used in a transaction
- Implement the Streams interface (XADD, XREAD, etc)
- RESP3 support
- Move most perf configuration options from
globals
to client-specific config structs - Add backpressure configuration options to the client config struct
- Fix bugs that can occur when using non-UTF8 byte arrays as keys
- Add the
serde-json
feature - Handle more complicated failure modes with Redis clusters
- Add a more robust and specialized pubsub subscriber client
- Ergonomics improvements on the public interfaces
- Improve docs
- More tests
- Fix authentication bug with
sentinel-auth
tests - Update tests and CI config for
sentinel-auth
feature - Add more testing scripts, update docs
- Switch to CircleCI
- Add
sentinel-auth
feature
- Add
NotFound
error kind variant - Use
NotFound
errors when castingnil
server responses to non-nullable types
- Remove some unnecessary async locks
- Fix client pool
wait_for_connect
implementation
- Fix aembke#11
- Support Sentinel clients
- Fix broken doc links
- Support Redis Sentinel
- Sentinel tests
- Move metrics behind compiler flag
- Add generic response interface.
- Add tests
See below.
- Add support for the
MONITOR
command.
- Redo cluster state change implementation to diff
CLUSTER NODES
changes - MOVED/ASK errors no longer initiate reconnection logic
- Fix chaos monkey tests
- Extend and refactor RedisConfig options
- Change RedisKey to work with bytes, not str
- Support unblocking clients with a control connection
- First draft of chaos monkey tests
- Custom reconnect errors feature
- Rewrite to use async/await
- Add Lua support
- Add transaction support
- Add hyperloglog, geo, acl, memory, slowlog, and cluster command support
- Add tests
- Add pipeline_test application
See the old repository at azuqua/fred.rs.