kash 0.7.0

Function and method cache and memoization
Documentation
[dependencies.async-trait]
version = "0.1"

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

[dependencies.instant]
version = "0.1"

[dependencies.kash_macros]
version = "0.7"

[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.32"

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

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

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

[dependencies.thiserror]
version = "2"

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

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

[dev-dependencies.copy_dir]
version = "0.1"

[dev-dependencies.googletest]
version = "0.14"

[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 = "basic"
path = "examples/basic.rs"

[[example]]
name = "complex"
path = "examples/complex.rs"

[[example]]
name = "custom_error_clone"
path = "examples/custom_error_clone.rs"

[[example]]
name = "custom_error_noclone"
path = "examples/custom_error_noclone.rs"

[[example]]
name = "disk"
path = "examples/disk.rs"
required-features = ["disk_store"]

[[example]]
name = "fib"
path = "examples/fib.rs"

[[example]]
name = "in_impl"
path = "examples/in_impl.rs"
required-features = ["async"]

[[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_connection_manager = ["redis_store", "redis/connection-manager"]
redis_store = ["dep:redis", "dep:r2d2", "dep:serde", "dep:rmp-serde", "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.clippy]
arithmetic_side_effects = "warn"
assigning_clones = "warn"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
default_trait_access = "allow"
else_if_without_else = "warn"
expect_used = "warn"
float_arithmetic = "warn"
if_then_some_else_none = "warn"
impl_trait_in_params = "warn"
implicit_return = "allow"
indexing_slicing = "warn"
iter_over_hash_type = "warn"
missing_docs_in_private_items = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
multiple_crate_versions = "allow"
needless_raw_strings = "warn"
option_option = "allow"
panic = "warn"
renamed_function_params = "warn"
self_named_module_files = "warn"
semicolon_inside_block = "warn"
single_call_fn = "allow"
string_slice = "warn"
unseparated_literal_suffix = "warn"
unwrap_in_result = "warn"
unwrap_used = "warn"
wildcard_enum_match_arm = "warn"
wildcard_imports = "allow"

[lints.clippy.cargo]
level = "warn"
priority = -1

[lints.clippy.correctness]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.clippy.perf]
level = "warn"
priority = -1

[lints.clippy.suspicious]
level = "warn"
priority = -1

[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
autolib = false
autotests = false
build = false
categories = ["caching", "data-structures"]
description = "Function and method cache and memoization"
documentation = "https://docs.rs/kash"
edition = "2024"
keywords = ["cache", "memoize", "redis", "disk"]
license = "MIT"
name = "kash"
readme = "README.md"
repository = "https://github.com/omid/kash"
rust-version = "1.85"
version = "0.7.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"