# iqdb-cache v0.1.0 — Scaffold
**The repository bootstrap.** v0.1.0 establishes the structure, tooling, and quality gates the caching layer is built on — no domain logic yet. It exists so the implementation lands one verified step at a time onto a foundation that already enforces the iQDB engineering standard.
## What is iqdb-cache?
An in-process caching layer for hot vectors and search results. For large indexes that do not fit in RAM, a well-tuned cache turns most reads into memory reads. It wraps any `Index` as a `CachedIndex` and is **disabled by default**, so it is purely an opt-in optimization. It sits above the index family (`iqdb-flat`, `iqdb-hnsw`, `iqdb-ivf`) and below the database, which exposes caching through its builder.
## What's in 0.1.0
- `Cargo.toml` with crate metadata, the Rust 2024 edition, and MSRV `1.87`.
- Dual `Apache-2.0 OR MIT` license files.
- `README.md`, `CHANGELOG.md`, and a documentation skeleton (`docs/API.md`).
- `REPS.md` compliance baseline and the shared lint config (`clippy.toml`, `rustfmt.toml`, `deny.toml`).
- `.github/workflows/ci.yml`: the CI matrix across Linux, macOS, and Windows on stable and the 1.87 MSRV, plus the loom (concurrency model-check) and security (`cargo audit` + `cargo deny`) jobs.
- `dev/DIRECTIVES.md` and `dev/ROADMAP.md`: the committed engineering standards and the phase-by-phase plan to 1.0.
## Breaking changes
**None** — this is the first tag.
## Verification
The scaffold compiles clean and the placeholder smoke test passes across the CI matrix:
```bash
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features
```
MSRV: Rust 1.87.
## What's next
- **v0.2.0 — `CachedIndex` wrapper + LRU vector cache.** The hard part, not deferred: the drop-in `IndexCore` wrapper and the bounded LRU cache, with every core invariant property-tested.
- **v0.3.0 — result cache with TTL + invalidation.** Memoized searches that never return a stale result after a mutation.
## Installation
```toml
[dependencies]
iqdb-cache = "0.1"
```
## Documentation
- [README](https://github.com/jamesgober/iqdb-cache/blob/main/README.md)
- [API reference](https://github.com/jamesgober/iqdb-cache/blob/main/docs/API.md)
- [ROADMAP](https://github.com/jamesgober/iqdb-cache/blob/main/dev/ROADMAP.md)
- [Standards (REPS)](https://github.com/jamesgober/iqdb-cache/blob/main/REPS.md)
- [CHANGELOG](https://github.com/jamesgober/iqdb-cache/blob/main/CHANGELOG.md)
---
**Changelog:** [`CHANGELOG.md`](https://github.com/jamesgober/iqdb-cache/blob/main/CHANGELOG.md).