[package]
name = "oxcache"
version = "0.1.3"
edition = "2021"
description = "A high-performance multi-level cache library for Rust with L1 (memory) and L2 (Redis) caching."
authors = ["Kirky.X"]
license = "MIT"
repository = "https://github.com/kirky-x/oxcache"
readme = "README.md"
keywords = ["cache", "redis", "memory", "async", "performance"]
categories = ["caching", "asynchronous", "database"]
[lib]
name = "oxcache"
path = "src/lib.rs"
[dependencies]
oxcache_macros = { path = "macros", version = "0.1.3", optional = true }
tokio = { version = "1.32", features = ["full"] }
async-trait = "0.1"
lazy_static = "1.4"
once_cell = "1.18"
uuid = { version = "1.0", features = ["v4"] }
secrecy = { version = "0.8", features = ["serde"] }
thiserror = "1.0"
anyhow = "1.0"
log = "0.4"
toml = { version = "0.8", optional = true }
tracing = { version = "0.1", optional = true }
[dependencies.moka]
version = "0.12"
default-features = false
features = ["future"]
optional = true
[dependencies.dashmap]
version = "6.0"
optional = true
[dependencies.redis]
version = "0.27"
default-features = false
features = ["aio", "tokio-comp", "cluster-async", "sentinel", "connection-manager", "script"]
optional = true
[dependencies.serde]
version = "1.0"
default-features = false
features = ["derive", "alloc"]
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.flate2]
version = "1.0"
optional = true
[dependencies.bincode]
version = "1.3"
optional = true
[dependencies.sea-orm]
version = "1.0.14"
default-features = false
features = ["sqlx-sqlite", "runtime-tokio-rustls", "macros"]
optional = true
[dependencies.sqlx]
version = "0.8"
default-features = false
features = ["sqlite", "runtime-tokio-rustls", "macros", "migrate"]
optional = true
[dependencies.opentelemetry]
version = "0.22"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.22"
optional = true
[dependencies.tracing-opentelemetry]
version = "0.23"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.15"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
default-features = false
features = ["env-filter", "fmt"]
optional = true
[dependencies.tokio-util]
version = "0.7"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.regex]
version = "1.10"
optional = true
[dependencies.chrono]
version = "0.4"
default-features = false
features = ["serde", "clock"]
optional = true
[dependencies.bloomfilter]
version = "2.0.0"
optional = true
[dependencies.governor]
version = "0.6"
default-features = false
features = ["std"]
optional = true
[dependencies.crc32fast]
version = "1.3"
optional = true
[dependencies.jemalloc-ctl]
version = "0.5"
optional = true
[dependencies.murmur3]
version = "0.5"
optional = true
[dependencies.clap]
version = "4.4"
default-features = false
features = ["derive"]
optional = true
[dependencies.confers]
version = "0.1.1"
optional = true
[dependencies.mcp-sdk-rs]
version = "0.3.4"
optional = true
[dev-dependencies]
tempfile = "3.8"
serial_test = "3.0"
rand = "0.8"
criterion = { version = "0.5", features = ["async_tokio"] }
ctor = "0.2"
mockall = "0.14.0"
[build-dependencies]
anyhow = { version = "1.0", optional = true }
[features]
default = ["full"]
skip_broken = []
test = []
minimal = [
"l1-moka",
"tokio/time",
"dep:tracing",
"metrics",
"serialization",
"chrono",
]
core = [
"minimal",
"l2-redis",
"futures",
]
full = [
"core",
"macros",
"bloom-filter",
"rate-limiting",
"wal-recovery",
"database",
"cli",
"full-metrics",
"batch-write",
"config-toml",
"confers",
"codegen",
"compression",
"memory-profiling",
"mcp-integration",
]
macros = ["dep:oxcache_macros"]
l1-moka = ["dep:moka", "dep:dashmap"]
l2-redis = ["dep:redis"]
serialization = ["dep:serde", "dep:serde_json"]
bincode = ["serialization", "dep:bincode"]
compression = ["dep:flate2"]
flate2 = ["dep:flate2"]
opentelemetry = ["dep:opentelemetry", "dep:opentelemetry_sdk", "dep:tracing-subscriber"]
metrics = ["opentelemetry", "dep:dashmap"]
full-metrics = ["metrics", "dep:tracing-opentelemetry", "dep:opentelemetry-otlp"]
database = ["dep:sea-orm", "dep:sqlx", "dep:regex"]
bloom-filter = ["dep:bloomfilter", "dep:murmur3"]
rate-limiting = ["dep:governor"]
wal-recovery = ["dep:crc32fast"]
batch-write = ["dep:tokio-util"]
sync = []
cli = ["dep:clap", "dep:dashmap", "dep:tracing", "metrics"]
config-toml = ["dep:toml"]
codegen = ["dep:anyhow"]
memory-profiling = ["dep:jemalloc-ctl"]
mcp-integration = ["dep:mcp-sdk-rs"]