1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# ██████╗ ███████╗██████╗ ███████╗
# ██╔══██╗██╔════╝██╔══██╗██╔════╝
# ██████╔╝█████╗ ██████╔╝███████╗
# ██╔══██╗██╔══╝ ██╔═══╝ ╚════██║
# ██║ ██║███████╗██║ ███████║
# ╚═╝ ╚═╝╚══════╝╚═╝ ╚══════╝
#╔═══════════════════════════════╗
#║ Rust Efficiency & Performance ║
#╚═══════════════════════════════╝
[]
= "iqdb-cache"
= "1.0.0"
# Minimum Supported Rust Version (MSRV)
= "1.87"
= "2024"
# License
= "Apache-2.0 OR MIT"
# Readme
= "README.md"
# Description
= "In-process vector and result caching with LRU/LFU/ARC eviction - part of the iQDB family."
# Keywords (5 max)
= [
"cache",
"vector-database",
"eviction",
"lru",
"iqdb"
]
# Categories
= [
"caching",
"data-structures"
]
# Links
= "https://github.com/jamesgober/iqdb-cache"
= "https://github.com/jamesgober/iqdb-cache"
= "https://docs.rs/iqdb-cache"
# Authors
= [
"James Gober <me@jamesgober.com>",
"Matt Callahan <matthewcallahan01@icloud.com>"
]
[]
= true
= ["--cfg", "docsrs"]
# `loom` and `docsrs` are first-party build cfgs this crate sets deliberately
# (loom concurrency model-checking; docs.rs feature gating). Declare them so the
# `unexpected_cfgs` lint stays quiet under `#![deny(warnings)]`.
[]
= { = "warn", = ['cfg(loom)', 'cfg(docsrs)'] }
[]
= "iqdb_cache"
= "src/lib.rs"
# FEATURE FLAGS
# #################################
[]
# Default build: the cache wrapper over the std index traits, no optional
# dependencies. The crate is std-only — it builds on `iqdb-index`, which is.
= []
# Derive `serde::{Serialize, Deserialize}` for `CacheStats`.
= ["dep:serde"]
# DEPENDENCIES
# #################################
[]
# The shared iQDB vocabulary: VectorId, Hit, SearchParams, DistanceMetric, Filter.
= "1.0.0"
# The trait this crate wraps: any `IndexCore` becomes a `CachedIndex`.
= "1.0.0"
# Monotonic, mockable time for result-cache TTL (the iQDB time standard).
= "1.0.0"
# Optional: `CacheStats` serialization.
= { = "1", = true, = false, = ["derive"] }
# DEV DEPENDENCIES
# #################################
[]
= { = "0.5", = ["html_reports"] }
= "1"
# Loom is a real dependency under `--cfg loom` (the library swaps its `Mutex` and
# atomics for loom's instrumented types via `src/sync.rs`), not just a dev-dep.
# It is pulled only when concurrency model-checking; normal builds never see it.
[]
= "0.7"
# BENCHMARKS
# #################################
[[]]
= "cache_bench"
= false
# RELEASE PROFILE
# #################################
[]
= 3
= "fat"
= 1
= "abort"
= "symbols"