valkey_client 0.5.0
valkey_client: ^0.5.0 copied to clipboard
A modern, production-ready Dart client for Valkey (9.0.0+). Fully Redis 7.x compatible.
Changelog #
0.5.0 #
Added #
- New Commands (Hashes): Added
client.hset(),client.hget(), andclient.hgetall(). - Upgraded RESP Parser: The internal parser now supports Integers (
:). hsetreturns anint(1for new field,0for update).hgetallconveniently returns aMap<String, String>.
Fixed #
- Critical Auth Bug: Fixed a bug where
connect()would time out (hang) if authentication failed (e.g., providing a password to a no-auth server). - Test Stability (
FLUSHDB): Fixed flaky command tests (likeHSETreturning0instead of1) by addingFLUSHDBtosetUpAll, ensuring a clean database for each test run. - Test Logic: Fixed the authentication failure test to expect the actual server error message (e.g.,
ERR AUTH) instead of a custom one.
Changed #
- Test Suite: Refactored the entire test setup (
valkey_client_test.dart) to use acheckServerStatus()helper. This reliably checks server availability before defining tests, preventing false skips and cleaning up the test logic.
0.4.0 #
Added #
- Upgraded RESP Parser: Implemented a full recursive parser.
- The parser now supports Arrays (
*), completing the core RESP implementation.
- The parser now supports Arrays (
- New Command: Added
client.mget()(Multiple GET) which relies on the new array parser. - Internal: Refactored the parser logic into a
_BufferReaderfor cleaner, more robust parsing.
0.3.0 #
Added #
- New Commands: Added
client.set()andclient.get()methods. - Upgraded RESP Parser: The internal parser now supports Bulk Strings (
$). - This enables handling standard string values (e.g.,
GET mykey) andnullreplies (e.g.,GET non_existent_key).
0.2.0 #
Added #
- Command Execution Pipeline: Implemented the core
executemethod to send commands and process responses via a queue. - PING Command: Added the first user-facing command:
client.ping(). - Basic RESP Parser: Added an internal parser to handle simple string (
+) and error (-) responses, preparing for full RESP3 support.
0.1.0 #
This is the first functional release, implementing the core connection logic.
Added #
- Core Connection: Implemented the initial client connection logic.
connect(): Connects to the Valkey server.close(): Closes the connection.onConnected: AFuturethat completes when the connection is established.
- Documentation:
- Added public API documentation (
lib/valkey_client.dart). - Added a comprehensive usage example (
example/valkey_client_example.dart).
- Added public API documentation (
- Testing:
- Added unit tests for connection, connection failure, and disconnection scenarios.
0.0.1 #
- Initial version. (Placeholder)