$ memista
about

About memista

A small library by Skelf-Research. Built because not every project that needs vector search needs a vector database.

What it is

memista is a Rust crate (crates.io/crates/memista) that packages a vector search service into a single binary. It uses SQLite (via async-sqlite) for chunk text and metadata, and USearch for the vector index. An Actix-web layer exposes three HTTP endpoints, with OpenAPI documentation auto-generated by apistos and rendered via Swagger UI, Redoc, RapiDoc and Scalar at /swagger, /redoc, /rapidoc and /scalar.

What it isn't

The audience

Rust developers who are bolting retrieval onto something else — an agent, a desktop app, a CLI — and don't want a separate database to run, monitor, and back up. Edge and local-AI workloads where a single binary that writes a .db and a .usearch file next to it is the right shape.

Index details (grounded)

propertyvaluesource
Index backendUSearch 2.19.xCargo.toml
AlgorithmHNSW (USearch default)USearch docs
Distance metricInner Product (MetricKind::IP)src/lib.rs
QuantizationScalarKind::F32src/lib.rs
SIMDsimsimd feature onCargo.toml
fp16 helpersfp16lib feature onCargo.toml
PersistenceSQLite WAL + <db_id>.usearch filesrc/lib.rs
Connectivity / expansion0 (USearch default)src/lib.rs
Multi-vector keysmulti: truesrc/lib.rs

The default connectivity, expansion_add and expansion_search are passed as 0, which means USearch picks its built-in defaults. If you need to tune recall vs. latency, fork the load_or_create_index helper.

Project

memista is part of Skelf-Research. Source on GitHub, published to crates.io, rustdoc at docs.rs, longer-form docs at docs.skelfresearch.com/memista/. Licensed GPL-3.0.