- Introduced corex-storage crate with support for local disk, S3-compatible, and Google Cloud Storage backends. - Implemented StorageDriver trait for various storage backends. - Added LocalFileStorage for local disk operations. - Added S3Storage for S3-compatible object storage with multipart upload support. - Added GcsStorage for Google Cloud Storage operations. - Included error handling for storage operations. - Added tests for each storage backend to ensure functionality. - Created README.md for documentation and usage examples. - Added Apache and MIT licenses for open-source compliance.
41 lines
1.5 KiB
TOML
41 lines
1.5 KiB
TOML
[package]
|
|
name = "corex-cache"
|
|
version = "1.2.0"
|
|
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/corex-cache"
|
|
authors = ["asepharyana <superaseph@gmail.com>"]
|
|
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"]
|
|
|
|
[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.27", default-features = false, features = ["tokio-comp"], optional = true }
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1.53", features = ["full"] }
|