daredis 0.2.1
daredis: ^0.2.1 copied to clipboard
A Redis client for Dart with connection pooling, cluster support, dedicated Pub/Sub and transaction sessions, and typed helper APIs.
0.2.1 #
Fixes #
- Hardened pub/sub acknowledgement handling so timed-out subscribe and unsubscribe operations do not leave stale waiters or corrupt reconnect replay state.
- Added exponential reconnect backoff and tightened connection/session error handling for standalone connections, pub/sub sessions, and monitor sessions.
- Fixed pool disposal ordering and idle maintenance edge cases to avoid silent async failures and cleaner resource turnover.
- Tightened decoding and normalization paths for server replies, bit operations, and cluster routing errors.
- Reduced internal duplication and decode overhead in shared server helpers, cluster pipeline handling, and RESP frame processing.
0.2.0 #
Breaking changes #
- Made raw RESP bulk-string replies binary-safe by default, so low-level
sendCommand()paths now preserveUint8Listpayloads instead of eagerly decoding them as text. - Narrowed command availability to the correct execution surface: dangerous operational commands remain admin-only, and connection-scoped commands such as
WAIT,WAITAOF,RESET,QUIT, and standaloneSELECTare exposed only on dedicated sessions.
Improvements #
- Expanded typed command helper coverage across core Redis command families, module commands, and session-specific workflows.
- Added explicit binary-safe helper variants for common string, hash, list, set, sorted-set, and stream read paths.
- Added dedicated
MONITORsupport and completed remaining helper coverage for command families that fit the current client/session model.
Docs #
- Removed the standalone command adaptation progress tracker in favor of documenting command access tiers directly in the README and API surface.
0.1.0 #
Breaking changes #
- Removed
DaredisCluster.clientPoolSize. Cluster clients now use one slot-aware router with per-node pools, sonodePoolSizeis the concurrency knob to configure. - Changed pipeline execution to run on a single connection. On Redis Cluster, all keyed commands in one pipeline must now route to the same node.
- Made
RedisPubSub.close()terminal. Closing a pub/sub session now completes its message stream and the same session cannot be reopened. - Made
RedisTransactionandRedisClusterTransactionsingle-use afterclose(). Open a fresh session withopenTransaction()for the next transaction.
Improvements #
- Tightened low-level connection lifecycle handling around idempotent
connect(), manual disconnect, and auth error propagation.
Docs #
- Refreshed README, examples, and package-level docs to match the updated client and session semantics.
0.0.5 #
- Extracted cluster command policy and redirect helpers into dedicated internal modules.
- Clarified native Redis Cluster multi-key rules in documentation and tests.
0.0.4 #
- Added slot-routed transactions for Redis Cluster via
openTransaction(String routingKey). - Enforced single-slot validation for cluster transaction sessions.
- Fixed cluster test cleanup to avoid cross-slot multi-key deletes.
0.0.3 #
- Added a publish-friendly
example/example.dartentry example. - Expanded dartdoc coverage for public client, session, connection, and utility APIs.
- Aligned the README quick start with the published package example.
0.0.2 #
- Refined command capability modeling around concrete client and session types.
- Moved command helpers to mixin-based composition for standalone, cluster, and transaction clients.
- Improved integration tests and cluster test configuration coverage.
0.0.1 #
- Initial release with single-node/cluster clients and connection pooling.