[package]
name = "kevy-rt"
description = "kevy thread-per-core shared-nothing runtime — pure Rust, zero deps."
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
readme = "README.md"
keywords = ["redis", "thread-per-core", "shared-nothing", "runtime", "reactor"]
categories = ["network-programming", "concurrency", "database-implementations"]

[lints]
workspace = true

[dependencies]
kevy-sys = { path = "../kevy-sys", version = "3.17.2" }
kevy-store = { path = "../kevy-store", version = "3.17.2" }
kevy-resp = { path = "../kevy-resp", version = "3.17.2" }
kevy-ring = { path = "../kevy-ring", version = "3.17.2" }
kevy-persist = { path = "../kevy-persist", version = "3.17.2" }
kevy-hash = { path = "../kevy-hash", version = "3.17.2" }
kevy-map = { path = "../kevy-map", version = "3.17.2" }
kevy-config = { path = "../kevy-config", version = "3.17.2" }
kevy-replicate = { path = "../kevy-replicate", version = "3.17.2" }

# io_uring engine is Linux-only; the rest of kevy-rt's hot path is the
# epoll/kqueue reactor in kevy-sys. Gate at the manifest level so non-
# Linux builds don't pull an empty crate into the graph.
[target.'cfg(target_os = "linux")'.dependencies]
kevy-uring = { path = "../kevy-uring", version = "3.17.2" }

# Loom is a CHARTER-EXEMPTED dev-only crates.io dep (precedent in
# kevy-ring/Cargo.toml — same status as cargo-fuzz / cargo-llvm-cov):
# it intercepts atomics + thread scheduling to enumerate every possible
# interleaving of concurrent code. Only resolves under
# `RUSTFLAGS="--cfg loom"` (see `tests/loom.rs` for the recipe); a
# normal `cargo build` / `cargo test` does NOT pull it in.
[target.'cfg(loom)'.dependencies]
loom = "0.7"
