Releases: dahomey-technologies/rustis
Releases Β· dahomey-technologies/rustis
0.10.0
BRRAKING CHANGE: Refactored CommandArgs
IntoArgs
trait has been renamed toToArgs
and does not consume the rust input type anymore (takes a reference instead)CommandArgs
is now a buffer where args are serialized on the fly.CommandArg
type has been removed.- internal
CommandEncoder
has been optimized in consequence
0.9.0
- BREAKING CHANGE on
Client
mutability:Client
does not require to be mutable to send commands.- This change simplifies a lot integration to Web frameworks (like
actix-web
oraxum
).
Pipeline
&Transaction
do not clone anymore aClient
instance but hold aClient
reference instead.- Added
actix-crud
andaxum-crud
examples.
0.8.3
- Fix RespSerializer & implemented unit tests
- Optimized RespDeserializer
0.8.2
- Optimizations
- Reduce allocations in BufferDecoder
- Use atoi crate to avoid UTF8 conversion before parsing to integers
0.8.1
- integrated serde
- serde Deserializers implementation over a RESP buffer (byte slice) & a resp::Value reference
- Direct conversion between a RESP buffer and a target Rust type without using an intermediate resp::Value instance. The main benefit is to trigger less allocations
- Removed trait resp::FromValue. resp::Value::into is now based on serde.
- Introduced traits Response, PrimitiveResponse, CollectionResponse & KeyValueCollectionResponse in replacement of FromValue, FromSingleValue, FromValueArray, FromKeyValueArray. The are marker traits to give flexibility and control in built-in commands implementation
- Introduced RespBuf struct to represent a RESP Buffer based on a Bytes struct with helper methods
- Simplified PubSub message parsing
0.7.2
- improved & simplified RESP3 parser
- optimizations (more inlining)
0.7.1
- added more constraint on FromKeyValueArray
- K must implement FromSingleValue instead of FromValue
- improved documentation
- grammatical fixes
- type fixes
- better formatting
0.7.0
- Made
GraphCache
shared betweenClient
clones (optimization) - Switched all communications to RESP3
- introduced
Value::Set
- introduced
Value::Map
- introduced
- Implemented command retries on network error:
- added config
max_command_attempts
- added config
retry_on_error
- added retry_on_error flag on
Client
/Pipeline
/Transaction
for each command/batch of commands
- added config
0.6.0
- merged
Client
andMultiplexedClient
- more flexibility to users
- more simplicity in rustis architecture
- exposed
get_client_state
onClient
- added
Client::close
to graciously close a client instance - Added Client::on_reconnect
- allow callers to receive notifications when the clients reconnects to the Redis server
- Added
Config
options:- connect_timeout - The time to attempt a connection before timing out (default 10,000ms).
- command_timeout - If a command does not return a reply within a set number of milliseconds,
a timeout error will be thrown. If set to 0, no timeout is apply (default 0). - auto_resubscribe - When the client reconnects, channels subscribed in the previous connection will be
resubscribed automatically ifauto_resubscribe
istrue
(defaulttrue
). - auto_remonitor - When the client reconnects, if in
monitor
mode, the
monitor
command will be resent automatically - connection_name - Set the name of the connection to make
it easier to identity the connection in client list. - no_delay - Enable/disable the use of Nagle's algorithm (default
true
) - keep_alive - Enable/disable keep-alive functionality (default
None
)
- removed struct
BulkString
- removed
u8
impl forIntoArgs
&FromValue
- added
Vec<u8>
,&[u8]
,&[u8; N]
,[u8; N]
impl forIntoArgs
- added
Vec<u8>
impl forFromValue
- removed
0.5.0
- Pub/Sub improvements:
-
- replaced
PubSubStream
streamedValue
by a more typed Rust struct:PubSubMessage
- replaced
-
- added associate functions
subscribe
,psubscribe
,ssubscribe
toPubSubStream
to be able to add additional subscriptions to an existing stream
- added associate functions
-