# iqdb-build v0.1.0 — Scaffold

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

The bulk-construction layer of the iQDB vector database. Loading a million vectors one at a time is slow; `iqdb-build` is the fast path — it splits input into chunks, builds sub-indexes in parallel, and merges them. It is generic over the `iqdb-index` `Index` trait, so the same builder constructs flat, HNSW, and IVF indexes without being hardcoded to one strategy. It sits above `iqdb-types` and `iqdb-index` and is consumed by `iqdb` for bulk ingestion.

## 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 — `IndexBuilder<I>` + sequential `build` / `build_into`.** The hard part, not deferred: the generic builder that constructs any `Index` from a stream of vectors, with the `error-forge` domain error, build statistics, property-tested invariants, and a runnable example on every public item.
- **v0.3.0 — rayon parallel construction + batching.** Shard the input across CPU cores and feed each backend through its vectorized `insert_batch` path, with criterion baselines on the hot path.

## Installation

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

## Documentation

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

---

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