# cache-mod v0.5.1 — Docs and repo hygiene

**Library code is byte-identical to 0.5.0.** No new public symbols, no behavioural changes, no breaking changes. `cargo update` from 0.5.0 yields a re-rendered README and the same compiled artifact. The user-visible improvements are concentrated on the crates.io / GitHub side: cleaner README, a proper API reference, a public release archive, and an MSRV CI fix that landed without a release marker after 0.5.0 was tagged.

## What is cache-mod?

High-performance in-process caching for Rust with five eviction policies all behind one trait. Async-safe (`&self` everywhere, `Send + Sync` cache instances), lock-minimized internals, typed key-value API. No dependency on any external store.

## What's in 0.5.1

### Docs

- **[`docs/API.md`](https://github.com/jamesgober/cache-mod/blob/main/docs/API.md)** — the complete public API reference, modelled on metrics-lib's API doc. Every public item (Cache trait, CacheError, LruCache / LfuCache / TtlCache / TinyLfuCache / SizedCache, VERSION constant) is listed with its signature, contract notes, and at least one working code example. Includes a "Choosing a Cache Type" comparison table and five "Real-World Examples" covering HTTP response caching, computed-result caching with skew, session stores, hot-key admission, and byte-budgeted image caching.
- **[`docs/README.md`](https://github.com/jamesgober/cache-mod/blob/main/docs/README.md)** — documentation index with release archive table and quick links.
- **[`docs/release/`](https://github.com/jamesgober/cache-mod/tree/main/docs/release)** — public archive of per-version release notes (v0.1.0 → v0.5.1). Each file is public-safe and matches what is posted to the corresponding GitHub Release.

### README

- Removed the stale `**Edition:** 2024.` line under "Standards". The crate has been on edition 2021 since 0.2.0; the `2024` claim was a scaffold-stage typo that survived through 0.5.0.
- Added a "Documentation" section linking to `docs/API.md`, `docs/README.md`, `CHANGELOG.md`, `REPS.md`, and `docs.rs`.

### Repo hygiene

- `.gitignore` now ignores the entire `.dev/` folder. Earlier rules only covered `.dev/scratch/` and `.dev/tmp/`, leaving `.dev/PROMPT.md`, `.dev/DIRECTIVES.md`, `.dev/ROADMAP.md`, and `.dev/release/` tracked. The `.dev/` folder is private working state — release notes that should be public now live at `docs/release/`, and the rest stays local-only.
- Untracked the historical `.dev/` directory tree (`git rm -r --cached .dev/`) so the 0.5.1 commit removes those files from the GitHub-visible tree at HEAD. Files remain in past commit history; scrubbing history entirely is a separate `git filter-repo` operation, intentionally not run as part of this release.

### CI (carry-forward from post-0.5.0)

- The MSRV row (Rust 1.75) now runs `cargo check --lib --all-features` instead of the full clippy / test / doc sweep. Dev-dependencies introduced in 0.5.0 (`criterion 0.5` → `clap_builder 4.6`) transitively require `edition2024` (Rust 1.85+), which the MSRV toolchain cannot parse. The library itself still builds cleanly on Rust 1.75; the build-tool MSRVs are deliberately independent of the library's MSRV promise. Same pattern config-lib already uses.

## Breaking changes

**None.** Every 0.5.0 call-site compiles and behaves identically against 0.5.1. The public surface is unchanged — same `Cache` trait, same five cache types, same `CacheError`, same constructors, same method signatures.

## Verification

Local run on Windows x86_64, Rust stable:

```bash
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo clippy --all-targets --no-default-features -- -D warnings
cargo test --all-features
cargo doc --no-deps --all-features
```

All green. Test totals are the same as 0.5.0 (no new test code shipped):

- Integration tests: **47 passed**.
- Property tests (proptest): **9 passed**.
- Doctests: **18 passed**.

## What's next

`0.6.0` remains the implementation-quality milestone — arena-backed, O(1)-update internals for `LruCache`, `LfuCache`, and `TtlCache`, plus a sharded-`Mutex` or `crossbeam-epoch` lock-strategy upgrade. Criterion regression numbers vs the 0.5.x baselines will land with that release. Public surface stays byte-identical.

## Installation

```toml
[dependencies]
cache-mod = "0.5"
```

MSRV: Rust 1.75. Edition 2021. `default-features = ["std"]`.

## Documentation

- [README](https://github.com/jamesgober/cache-mod/blob/main/README.md)
- [API reference (full)](https://github.com/jamesgober/cache-mod/blob/main/docs/API.md)
- [CHANGELOG](https://github.com/jamesgober/cache-mod/blob/main/CHANGELOG.md)
- [REPS standards](https://github.com/jamesgober/cache-mod/blob/main/REPS.md)
- [docs.rs/cache-mod/0.5.1](https://docs.rs/cache-mod/0.5.1)

---

**Full diff:** [`v0.5.0...v0.5.1`](https://github.com/jamesgober/cache-mod/compare/v0.5.0...v0.5.1).
**Changelog:** [`CHANGELOG.md`](https://github.com/jamesgober/cache-mod/blob/main/CHANGELOG.md#051---2026-05-20).
