Wraps pure (query/transform) atom invocations with SHA-256 keyed cache. Refuses Command/Stream kind atoms as unsafe. 22/22 tests (14 unit + 8 integration). Canonical JSON keying (formatting-drift safe). TTL expiry. AtomExecutor trait decouples subprocess from test mocks. Default DB ~/.claude/cache/cache.sqlite, overridable via --db or $KEI_CACHE_DB. Workspace Cargo.toml: +kei-cache member. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
596 B
TOML
27 lines
596 B
TOML
[package]
|
|
name = "kei-cache"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
rust-version = "1.75"
|
|
description = "Atom result cache — deterministic wrapping of pure (query/transform) atom invocations"
|
|
|
|
[[bin]]
|
|
name = "kei-cache"
|
|
path = "src/main.rs"
|
|
|
|
[lib]
|
|
name = "kei_cache"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
rusqlite = { version = "0.31", features = ["bundled"] }
|
|
clap = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
sha2 = { workspace = true }
|
|
anyhow = "1"
|
|
thiserror = "1"
|
|
kei-atom-discovery = { path = "../kei-atom-discovery" }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|