[package]
name = "skeg-core"
version = "0.3.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
description = "KV engine, vLog, indices, compaction, and cache for skeg"
readme = "../../README.md"
keywords = ["kv-store", "vlog", "lsm", "skeg", "database"]
categories = ["database", "data-structures"]

[dependencies]
skeg-proto = { path = "../skeg-proto", version = "0.1" }
skeg-platform = { path = "../skeg-platform", version = "0.1" }
skeg-telemetry = { path = "../skeg-telemetry", version = "0.2", default-features = false, features = ["stats"] }
bytes = { workspace = true }
xxhash-rust = { workspace = true }
crc32c = { workspace = true }
parking_lot = { workspace = true }
smallvec = { workspace = true }
ahash = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true }

[dev-dependencies]
proptest = { workspace = true }
tempfile = { workspace = true }
# The `testing` feature exposes runtime overrides on
# `skeg-platform::durability` so committer tests can exercise both the
# PerFile and DeviceGlobal dispatch paths regardless of the host
# platform. Pulled only at test time; release builds do not see it.
skeg-platform = { path = "../skeg-platform", features = ["testing"] }

# Shared-committer commit-latency bench. Custom main (`harness = false`)
# because criterion's iter_custom adds noise on fsync-heavy benches where
# wall-clock medians are the figure of merit, not statistical mean+CI.
[[bench]]
name = "sharded_commit"
harness = false

# Per-tenant accounting must not regress the single-tenant cache path.
# Custom main, wall-clock medians.
[[bench]]
name = "cache_tenant_accounting"
harness = false

[lints]
workspace = true
