[package]
name = "kevy-embedded"
description = "Embedded mode for kevy — in-process Redis-compatible KV without the server/runtime."
# kevy-embedded tracks its own additive growth (Store::Clone + pubsub bus
# from v1.1.0). Patch 1.1.3 picks up the workspace 1.2.0 chain that
# carries the kevy-persist AOF_MAGIC header (forward-compat) + the
# replay_aof loud-summary fix from 1.1.1. 1.1.5 follows the workspace
# 1.4.2 chain and an internal split of `pubsub.rs` (no API change).
version = "1.4.4"
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/kevy-embedded"
readme = "README.md"
keywords = ["kevy", "redis", "kv", "embedded", "cache"]
categories = ["database-implementations", "caching", "embedded"]

[lints]
workspace = true

[dependencies]
kevy-store = { path = "../kevy-store", version = "1.19.0" }
kevy-persist = { path = "../kevy-persist", version = "1.19.0" }
kevy-hash = { path = "../kevy-hash", version = "1.19.0" }
# Phase 2 (v1.20+): embed-as-read-replica reuses the server-side
# replication wire client (kevy-replicate) so the same protocol drives
# both server replicas and embed replicas. `default-features = false`
# keeps the dep lean even though kevy-replicate has no optional features
# today — explicit intent for when it grows them.
kevy-replicate = { path = "../kevy-replicate", version = "1.19.0", default-features = false }
# kevy-resp: needed for `parse_command` (handshake decoding) inside
# the Phase 3 / v1.21 embed-as-writer replica source listener.
kevy-resp = { path = "../kevy-resp", version = "1.19.0" }

[dev-dependencies]
# Phase 2 e2e: brings up a real kevy server primary in-process so the
# embed-as-read-replica integration test exercises the full TCP path
# (handshake → streaming → apply). Dev-only — no publish-time cycle
# because `kevy` does not depend on `kevy-embedded`.
kevy = { path = "../kevy", version = "1.19.0" }
kevy-rt = { path = "../kevy-rt", version = "1.19.0" }
# Used by examples/embed_vs_server.rs to give the Rust caller a single
# unified blocking-client surface so the embed-vs-server bench compares
# the same Rust code against different backends (kevy embed vs kevy
# server vs valkey vs redis). Dev-only.
kevy-client = { path = "../kevy-client" }
