[package] name = "mytheclipse-cache" version = "1.21.2" edition = "2021" rust-version = "1.75" license = "MIT OR Apache-2.0" repository = "https://github.com/asepharyana/mytheclipse" homepage = "https://github.com/asepharyana/mytheclipse" documentation = "https://docs.rs/mytheclipse-cache" authors = ["asepharyana "] description = "Unified multi-layer cache abstraction: L1/L2 caching, cache-aside and auto-refresh, with pluggable backends." readme = "README.md" keywords = ["cache", "lru", "redis", "multilayer", "cache-aside"] categories = ["caching", "asynchronous"] [features] default = ["l1-memory", "cache-aside"] # L1 (in-process) backends. l1-memory = [] l1-moka = ["l1-memory", "dep:moka"] # L2 (distributed) backends. l2-redis = ["l1-memory", "dep:redis"] # Cache-aside + auto-refresh helper. cache-aside = ["l1-memory", "dep:serde", "dep:serde_json", "dep:tokio"] [dependencies] tracing = "0.1" # Required unconditionally: the core `Cache` trait (always compiled) uses it. async-trait = "0.1" serde = { version = "1", features = ["derive"], optional = true } serde_json = { version = "1", optional = true } # L1: Moka (high-performance in-memory cache). moka = { version = "0.12", default-features = false, features = ["future"], optional = true } # L2: Redis/Valkey async client (multiplexed connection). redis = { version = "0.32", default-features = false, features = ["tokio-comp"], optional = true } tokio = { version = "1.53", features = ["sync", "rt"], optional = true } [dev-dependencies] tokio = { version = "1.53", features = ["full"] }