diskann-record 0.55.0

DiskANN3 is a composable library for bringing scalable, accurate and cost-effective vector indexing to multiple databases.
Documentation

DiskANN Record

This crate provides a small framework for persisting structured Rust values (struct, enum, Option<T>, Vec<T>, and primitives) as a manifest (can be serialized to JSON) plus a set of side-car binary artifacts, and reloading them later. It is can be used by diskann providers and indexes to implement durable, consistent and backward-compatible checkpoints.

Types describe how they map to a versioned record by implementing the save::Save and load::Load traits; the save_fields! and load_fields! macros handle the field-by-field plumbing for plain structs. Every record carries a Version so loaders can detect schema changes and either upgrade or fall back through a probing chain.

The goal is to allow crates like diskann to checkpoint their state without depending on a particular serialization backend. Currently, this crate implements Disk and Memory backends -- Disk for persistent storage and Memory for in-memory operations. Memory pipes the output of its SaveContext directly into the input of its LoadContext, so it is not compatible with other backends. A hypothetical ObjectStore backend could be implemented to be compatible with Disk backends to support caching and other advanced features.

This crate has minimal dependencies by design.