[package]
name = "kevy-client"
description = "Unified client for kevy — switch between in-process embedded and TCP server backends with a single URL."
# Explicit, not workspace-inherited: kevy-client tracks its own version
# (additive API growth is faster than the underlying server's). Minor
# 1.6.0 adds Subscriber::recv_message — auto-skips SUBSCRIBE acks and
# returns (channel, payload) directly. Minor 1.7.0 adds
# Subscriber::events() / messages() borrowing iterators (sync wrapper —
# kevy-client stays 0-deps so it's std::iter::Iterator, not
# futures::Stream; async runtimes wrap via spawn_blocking) plus
# Transaction::exec_typed() / exec_watched_typed() returning a typed
# TransactionReplies cursor (next_int / next_bulk / next_ok /
# next_array_of_bulks / expect_empty) so callers stop hand-matching
# Reply variants out of EXEC's reply array. Patch 1.7.1 picks up the
# workspace 1.4.2 chain + an internal split of `subscribe.rs` (no
# API change — pure refactor under the 500-LOC house rule).
version = "1.12.17"
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/kevy-client"
readme = "README.md"
keywords = ["kevy", "redis", "kv", "client", "embedded"]
categories = ["database", "caching", "api-bindings"]

[lints]
workspace = true

[dependencies]
kevy-embedded = { path = "../kevy-embedded", version = "1.2.0" }
kevy-resp = { path = "../kevy-resp", version = "1.19.0" }
kevy-resp-client = { path = "../kevy-resp-client", version = "1.19.0" }
kevy-hash = { path = "../kevy-hash", version = "1.19.0" }
