Vector/VectorRef— owned (validated,Box<[f32]>-backed) and borrowed N-dimensional float vectorsVectorId— stable identifier: 64-bit integer or user-supplied bytesDistanceMetric— metric tag:Cosine,DotProduct,Euclidean,Manhattan,HammingMetadata/Value— immutable, ordered scalar key/value payloadFilter— boolean expression tree over metadata (closed-world semantics)SearchParams— query parameters: k, metric, filter, search-time breadthHit— a search result: id, distance, and optional metadataIqdbError— the domain error (error-forgeForgeError)serdesupport — every public type (de)serializes under theserdefeature
Installation
[]
= "0.5"
Status
v0.5.0 — API frozen for 1.x. The public surface is locked (recorded in the ROADMAP); only additive, non-breaking changes are allowed before 2.0. The surface is property-tested across every invariant, fully documented with runnable examples and a complete API reference, performance-tuned (Box<[f32]>-backed Vector, inlined accessors, a benchmarked hot path), validated by a consumer-simulation suite, and verified on Windows + Linux across stable and the 1.87 MSRV. Remaining before 1.0: alpha/beta/RC polish.
Where It Fits
iqdb-types is the root of the iQDB dependency graph. Everything builds on it:
iqdb-distance— operates on theseVectorandDistanceMetrictypesiqdb-flat/iqdb-hnsw/iqdb-ivf— index crates returningHits forSearchParamsiqdb— the database, composing the family on this shared vocabulary
It has no first-party dependencies, so it is unblocked and buildable today.
Contributing
See dev/DIRECTIVES.md for engineering standards and the definition of done. Before a PR: cargo fmt --all, cargo clippy --all-targets --all-features -- -D warnings, and cargo test --all-features must be clean.