fncache 0.1.2

A zero-boilerplate Rust library for function-level caching with pluggable backends
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.70"
name = "fncache"
version = "0.1.2"
authors = ["Lokesh Kumar <lkumar94@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A zero-boilerplate Rust library for function-level caching with pluggable backends"
readme = "README.md"
keywords = [
    "cache",
    "memoization",
    "performance",
    "macro",
]
categories = [
    "caching",
    "asynchronous",
    "web-programming",
]
license = "MIT"
repository = "https://github.com/kumarlokesh/fncache"

[features]
bincode = ["dep:bincode"]
compile-time-keys = []
default = [
    "memory",
    "serde",
    "bincode",
]
file-backend = [
    "dep:serde",
    "bincode",
    "tempfile",
]
memory = [
    "dashmap",
    "tokio",
]
metrics = ["dep:metrics"]
redis-backend = [
    "dep:redis",
    "serde_json",
]
rocksdb-backend = [
    "dep:rocksdb",
    "bincode",
]
serde = ["dep:serde"]
test-utils = []
wasm = [
    "wasm-bindgen",
    "web-sys",
    "js-sys",
    "memory",
]

[lib]
name = "fncache"
path = "src/lib.rs"
proc-macro = false

[[example]]
name = "backend_file"
path = "examples/backend_file.rs"
required-features = ["file-backend"]

[[example]]
name = "backend_memory"
path = "examples/backend_memory.rs"
required-features = ["memory"]

[[example]]
name = "backend_redis"
path = "examples/backend_redis.rs"
required-features = ["redis-backend"]

[[example]]
name = "cache_invalidation"
path = "examples/cache_invalidation.rs"
required-features = ["memory"]

[[example]]
name = "error_handling"
path = "examples/error_handling.rs"
required-features = ["memory"]

[[example]]
name = "getting_started"
path = "examples/getting_started.rs"
required-features = ["memory"]

[[example]]
name = "key_derivation"
path = "examples/key_derivation.rs"
required-features = [
    "memory",
    "compile-time-keys",
]

[[example]]
name = "sync_vs_async_functions"
path = "examples/sync_vs_async_functions.rs"
required-features = ["memory"]

[[test]]
name = "basic_cache_safety_tests"
path = "tests/basic_cache_safety_tests.rs"

[[test]]
name = "cache_tests"
path = "tests/cache_tests.rs"

[[test]]
name = "eviction_tests"
path = "tests/eviction_tests.rs"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"

[[test]]
name = "key_derivation_tests"
path = "tests/key_derivation_tests.rs"

[[test]]
name = "thread_safe_eviction_test"
path = "tests/thread_safe_eviction_test.rs"

[[bench]]
name = "core_benchmarks"
path = "benches/core_benchmarks.rs"
harness = false

[[bench]]
name = "file_bench"
path = "benches/file_bench.rs"
harness = false

[[bench]]
name = "redis_bench"
path = "benches/redis_bench.rs"
harness = false

[[bench]]
name = "rocksdb_bench"
path = "benches/rocksdb_bench.rs"
harness = false

[dependencies.async-trait]
version = "0.1.72"

[dependencies.bincode]
version = "1.3.3"
optional = true

[dependencies.dashmap]
version = "5.5.0"
optional = true

[dependencies.fncache-macros]
version = "0.1.2"

[dependencies.futures]
version = "0.3.28"

[dependencies.js-sys]
version = "0.3"
optional = true

[dependencies.metrics]
version = "0.21.1"
optional = true

[dependencies.redis]
version = "0.23.3"
features = [
    "tokio-comp",
    "connection-manager",
]
optional = true

[dependencies.rocksdb]
version = "0.21.0"
optional = true

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

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

[dependencies.tempfile]
version = "3.8.0"
optional = true

[dependencies.thiserror]
version = "1.0.50"

[dependencies.tokio]
version = "1.32.0"
features = [
    "sync",
    "rt-multi-thread",
    "macros",
    "rt",
    "time",
]
optional = true

[dependencies.wasm-bindgen]
version = "0.2"
optional = true

[dependencies.web-sys]
version = "0.3"
features = [
    "Storage",
    "Window",
    "console",
]
optional = true

[dev-dependencies.bincode]
version = "1.3.3"

[dev-dependencies.criterion]
version = "0.5"
features = [
    "html_reports",
    "async_futures",
]

[dev-dependencies.futures]
version = "0.3.28"

[dev-dependencies.rand]
version = "0.8"

[dev-dependencies.serde]
version = "1.0.188"
features = ["derive"]

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

[dev-dependencies.tokio]
version = "1.32.0"
features = ["full"]

[dev-dependencies.wasm-bindgen-futures]
version = "0.4"

[dev-dependencies.wasm-bindgen-test]
version = "0.3"

[profile.bench]
opt-level = 3
debug = 2

[profile.dev]
opt-level = 0
debug = 2