cached 2.0.2

Generic cache implementations and simplified function memoization
Documentation
[package]
name = "cached"
version = "2.0.2"
authors = ["James Kominick <james@kominick.com>"]
description = "Generic cache implementations and simplified function memoization"
repository = "https://github.com/jaemk/cached"
documentation = "https://docs.rs/cached"
readme = "README.md"
categories = ["caching", "data-structures"]
keywords = ["cache", "memoize", "lru", "redis", "disk"]
license = "MIT"
edition = "2024"
rust-version = "1.85"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["proc_macro", "ahash", "time_stores"]
proc_macro = ["cached_proc_macro", "cached_proc_macro_types"]
ahash = ["dep:ahash", "hashbrown/default"]
async_core = []
async = ["async_core", "tokio"]
async_tokio_rt_multi_thread = ["async", "tokio/rt-multi-thread"]
redis_store = ["redis", "r2d2", "serde", "serde_json"]
redis_connection_manager = ["async", "redis_store", "redis/connection-manager", "redis/tokio-comp"]
redis_smol = [
  "redis_store",
  "async",
  "redis/smol-native-tls-comp",
]
redis_tokio = [
  "redis_store",
  "async",
  "redis/tokio-native-tls-comp",
]
redis_async_cache = ["redis_tokio", "redis/cache-aio"]
redis_ahash = ["redis_store", "redis/ahash"]
disk_store = ["sled", "serde", "rmp-serde", "directories"]
wasm = []
time_stores = []

[dependencies.cached_proc_macro]
version = "2.0.0"
path = "cached_proc_macro"
optional = true

[dependencies.cached_proc_macro_types]
version = "1.0.0"
path = "cached_proc_macro_types"
optional = true

[dependencies.hashbrown]
version = "0.16"
default-features = false
features = ["inline-more"]

[dependencies.parking_lot]
version = "0.12.5"

[dependencies.thiserror]
version = "2"

[dependencies.ahash]
version = "0.8"
default-features = false
optional = true


[dependencies.redis]
version = "1.0"
features = ["r2d2"]
optional = true

[dependencies.sled]
version = "0.34"
optional = true

[dependencies.rmp-serde]
version = "1.1"
optional = true

[dependencies.directories]
version = "6.0"
optional = true

[dependencies.r2d2]
version = "0.8"
optional = true

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.tokio]
version = "1"
features = ["macros", "time", "sync", "parking_lot", "rt"]
optional = true

[dependencies.web-time]
version = "^1.1.0"

[dev-dependencies]
copy_dir = "0.1.3"
googletest = "0.11.0"
tempfile = "3.10.1"
trybuild = "1"
criterion = "0.5"

[dev-dependencies.async-std]
version = "1.6"
features = ["attributes"]

[dev-dependencies.smartstring]
version = "1"

[dev-dependencies.serial_test]
version = "3"

[workspace]
members = ["cached_proc_macro", "examples/wasm"]

[[example]]
name = "redis"
required-features = ["redis_store", "async_tokio_rt_multi_thread", "proc_macro"]

[[example]]
name = "redis-async-tokio"
required-features = ["redis_tokio", "async_tokio_rt_multi_thread", "proc_macro"]

[[example]]
name = "redis-async-async-std"
required-features = ["redis_smol", "proc_macro"]

[[example]]
name = "tokio"
required-features = ["async_tokio_rt_multi_thread", "proc_macro"]

[[example]]
name = "async_std"
required-features = ["async", "proc_macro"]

[[example]]
name = "expires_per_key"
required-features = ["proc_macro"]

[[example]]
name = "expiring_sized_cache"
required-features = ["async_tokio_rt_multi_thread", "time_stores"]

[[example]]
name = "basic"
required-features = ["time_stores", "proc_macro"]

[[example]]
name = "kitchen_sink"
required-features = ["time_stores", "proc_macro"]

[[example]]
name = "disk"
required-features = ["disk_store", "proc_macro"]

[[example]]
name = "disk_async"
required-features = ["disk_store", "async_tokio_rt_multi_thread", "proc_macro"]

[[example]]
name = "redis-client-side-cache-tokio"
required-features = ["redis_async_cache", "async_tokio_rt_multi_thread", "proc_macro"]

[[example]]
name = "sharded"
required-features = ["time_stores", "proc_macro"]

[[example]]
name = "sharded_expiring"
required-features = ["proc_macro"]

[[bench]]
name = "cache_benches"
harness = false
required-features = ["time_stores", "proc_macro"]