- Versions 3.x were focused on upgrading to Tokio 1.x and async/await
- Versions 4.x were focused on ergonomics and testing
- Versions 5.x are focused on feature parity with newer Redis features (streams, RESP3, etc)
- Versions 6.x will be focused on performance.
- 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
- Minor perf improvements via the removal of some locks...
- Minor perf regressions from workarounds required to use async functions with traits. In the end it's a wash.
- 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.