[package]
name = "kevy"
description = "kevy — a pure-Rust, zero-dependency, Redis-compatible KV server."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
readme = "README.md"
keywords = ["redis", "kv", "key-value", "database", "valkey"]
categories = ["database-implementations", "caching", "network-programming"]

[lints]
workspace = true

[lib]
name = "kevy"
path = "src/lib.rs"

[[bin]]
name = "kevy"
path = "src/main.rs"

[dependencies]
kevy-sys = { path = "../kevy-sys", version = "1.19.0" }
kevy-resp = { path = "../kevy-resp", version = "1.19.0" }
kevy-store = { path = "../kevy-store", version = "1.19.0" }
kevy-rt = { path = "../kevy-rt", version = "1.19.0" }
kevy-config = { path = "../kevy-config", version = "1.19.0" }
kevy-persist = { path = "../kevy-persist", version = "1.19.0" }
kevy-geo = { path = "../kevy-geo", version = "1.19.0" }
kevy-hash = { path = "../kevy-hash", version = "1.19.0" }
# kevy-replicate: the server-as-replica runner (T1.29) needs
# `ReplicaClient` / `ReplicaEvent` at runtime, not just for tests.
# (Pre-T1.29 the dep was dev-only via `tests/replication.rs` decoding
# wire frames; T1.29 promotes it to a normal dep.)
kevy-replicate = { path = "../kevy-replicate", version = "1.19.0" }
# kevy-elect: v3-cluster Phase 1.5 quorum failover. Opt-in via
# `[cluster] peers = "..."`; dormant when not configured, so the
# v1.18-era deployments are unaffected.
kevy-elect = { path = "../kevy-elect", version = "1.19.0" }

[dev-dependencies]
kevy-bench = { path = "../kevy-bench" }
# kevy-client is the URL-facade client; only used by integration tests
# that exercise BOTH server + client in one process (e.g. the RESP3
# Subscriber round-trip). Dev-only — never enters the published kevy
# binary's dep graph.
kevy-client = { path = "../kevy-client" }
