[dependencies.async-trait]
version = "0.1"
[dependencies.directories]
optional = true
version = "5.0"
[dependencies.instant]
version = "0.1"
[dependencies.kash_macros]
version = "0.2"
[dependencies.moka]
version = "0.12"
[dependencies.once_cell]
version = "1"
[dependencies.r2d2]
optional = true
version = "0.8"
[dependencies.redis]
features = ["r2d2"]
optional = true
version = "0.27"
[dependencies.rmp-serde]
optional = true
version = "1.1"
[dependencies.serde]
features = ["derive"]
optional = true
version = "1.0"
[dependencies.serde_json]
optional = true
version = "1.0"
[dependencies.sled]
optional = true
version = "0.34"
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
features = ["macros", "time", "sync", "parking_lot"]
optional = true
version = "1.0"
[dev-dependencies.async-std]
features = ["attributes"]
version = "1"
[dev-dependencies.copy_dir]
version = "0.1"
[dev-dependencies.googletest]
version = "0.12"
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.smartstring]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
features = ["macros", "rt-multi-thread"]
version = "1"
[[example]]
name = "async_std"
path = "examples/async_std.rs"
required-features = ["async"]
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "complex"
path = "examples/complex.rs"
[[example]]
name = "disk"
path = "examples/disk.rs"
required-features = ["disk_store"]
[[example]]
name = "in_impl"
path = "examples/in_impl.rs"
[[example]]
name = "kitchen_sink"
path = "examples/kitchen_sink.rs"
[[example]]
name = "once"
path = "examples/once.rs"
[[example]]
name = "redis"
path = "examples/redis.rs"
required-features = ["redis_store"]
[[example]]
name = "redis-async"
path = "examples/redis-async.rs"
required-features = ["async"]
[[example]]
name = "tokio"
path = "examples/tokio.rs"
required-features = ["async"]
[features]
async = ["moka/future"]
default = ["moka/sync"]
disk_store = ["dep:sled", "dep:serde", "dep:rmp-serde", "dep:directories", "kash_macros/disk_store"]
redis_ahash = ["redis_store", "redis/ahash"]
redis_async_std = ["redis_store", "async", "redis/aio", "redis/async-std-comp", "redis/tls", "redis/async-std-tls-comp"]
redis_connection_manager = ["redis_store", "redis/connection-manager"]
redis_store = ["dep:redis", "dep:r2d2", "dep:serde", "dep:serde_json", "kash_macros/redis_store"]
redis_tokio = ["redis_store", "async", "redis/aio", "redis/tokio-comp", "redis/tls", "redis/tokio-native-tls-comp", "tokio"]
[lib]
name = "kash"
path = "src/lib.rs"
[lints.rust]
future_incompatible = "deny"
nonstandard-style = "deny"
rust_2018_idioms = "deny"
[lints.rust.unsafe_code]
level = "forbid"
priority = 2
[package]
authors = ["Omid Rad <omidmr@gmail.com>", "James Kominick <james@kominick.com>"]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
categories = ["caching", "data-structures"]
description = "Function and method cache and memoization"
documentation = "https://docs.rs/kash"
edition = "2021"
keywords = ["cache", "memoize", "lru", "redis", "disk"]
license = "MIT"
name = "kash"
readme = "README.md"
repository = "https://github.com/omid/kash"
rust-version = "1.76"
version = "0.2.0"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[test]]
name = "disk"
path = "tests/disk.rs"
[[test]]
name = "kash"
path = "tests/kash.rs"
[[test]]
name = "redis"
path = "tests/redis.rs"