bbqvec 0.0.10

Scalable, embeddable, vector storage for approximate K-nearest-neighbors (AKNN)
Documentation
use bbqvec::IndexIDIterator;
use criterion::{BenchmarkId, Criterion};

pub fn criterion_benchmark_memory_store(c: &mut Criterion) {
    let data = bbqvec::create_vector_set(256, 1000000);
    println!("Made vecs");
    let mem = bbqvec::MemoryBackend::new(256, 30).unwrap();
    let mut store = bbqvec::VectorStore::new_croaring_bitmap(mem).unwrap();
    println!("Made store");
    store.add_vector_iter(data.enumerate_ids()).unwrap();
    println!("itered");
    println!("built");
    c.bench_with_input(BenchmarkId::new("find_nearest", "store"), &store, |b, s| {
        b.iter(|| {
            let target = bbqvec::create_random_vector(256);
            s.find_nearest(&target, 20, 1000, 4).unwrap();
        })
    });
}