Embedded semantic search in a Rust app
memista embeds vector search directly in a Rust binary. Pull in create_app and AppState, keep one .db and one .usearch file next to your app, and query over three endpoints. Best under ~100k vectors.
You have a Rust app — an agent, a CLI, a desktop tool — and you want semantic search over some text. You do not want to stand up and operate a vector database next to it.
Why memista fits
memista is a crate first. Pull in create_app and AppState and mount the same
handlers inside your own Actix-web binary. A partition is a .db and a
.usearch file sitting next to your app — nothing to orchestrate.
The shape
- Embed text with your model of choice,
POST /v1/insertthe vectors. - Query with
POST /v1/search, get ranked chunks with text and metadata back. - Ship the two files with your app, or generate them on first run.
Honest limits
memista is experimental and tested under ~100k vectors. For an embedded corpus — a knowledge base, a doc set, a project’s own history — that’s usually plenty. If you’re indexing millions of vectors across a fleet, you want a distributed database; see memista vs Qdrant.
Related: quickstart, insert vectors over HTTP.
Frequently Asked Questions
Do I need a separate service?
No. memista is a crate — mount its handlers inside your own Actix binary, or run the bundled server as a child process. One process either way.