# iqdb-flat v0.1.0 — Scaffold

**The repository bootstrap.** v0.1.0 establishes the structure, tooling, and quality gates the flat index 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-flat?

The brute-force exact nearest-neighbor layer of the iQDB vector database. It scans every stored vector on every search, computes the true distance, and returns the top-`k` — always correct, by construction. That makes it two things at once: a real index that is the right choice for small datasets where graph overhead is not justified, and the **recall ground truth** every approximate index (HNSW, IVF) is measured against. It is the first and simplest consumer of the `Index` trait, so it doubles as the trait's design validation. It sits above `iqdb-types`, `iqdb-distance`, and `iqdb-index`.

## 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 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 — exact search + top-`k` + the `Index` impl.** The hard part, not deferred: a bounded-heap top-`k` selector with a stable tiebreaker, one smaller-is-nearer ordering invariant across all five metrics, and the first real implementation of the `iqdb-index` trait — property-tested against a full-scan oracle.
- **v0.3.0 — rayon parallel scans + contiguous memory layout.** A byte-identical parallel path over the sequential baseline.

## Installation

```toml
[dependencies]
iqdb-flat = "0.1"
```

## Documentation

- [README](https://github.com/jamesgober/iqdb-flat/blob/main/README.md)
- [API reference](https://github.com/jamesgober/iqdb-flat/blob/main/docs/API.md)
- [ROADMAP](https://github.com/jamesgober/iqdb-flat/blob/main/dev/ROADMAP.md)
- [Standards (REPS)](https://github.com/jamesgober/iqdb-flat/blob/main/REPS.md)
- [CHANGELOG](https://github.com/jamesgober/iqdb-flat/blob/main/CHANGELOG.md)

---

**Changelog:** [`CHANGELOG.md`](https://github.com/jamesgober/iqdb-flat/blob/main/CHANGELOG.md).
