$ memista

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.

For: Rust developers adding retrieval to an existing app

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/insert the 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.

Related

Try memista

A single crate, GPL-3.0. Two files on disk and three endpoints.