$ memista

Install memista and run the server

Add the crate, start the bundled Actix-web server on 127.0.0.1:8083, and confirm the three endpoints and OpenAPI docs are live.

Difficulty: beginnerTime: 5 min

memista ships as a crate with a bundled server binary. This guide gets you from zero to a running index with data in it.

1. Add the crate

cargo add memista

memista targets Rust 1.56+. It pulls in USearch (with the simsimd and fp16lib features) for the index and async-sqlite for metadata storage.

2. Start the server

Run the bundled binary. By default it binds to 127.0.0.1:8083 and exposes three endpoints:

  • POST /v1/insert — add chunks
  • POST /v1/search — nearest-neighbour query
  • DELETE /v1/drop — drop a partition

memista binds to localhost and trusts everything on the wire. There is no authentication. If you expose it beyond the box, put a reverse proxy in front and terminate auth there.

3. Explore the API in the browser

The OpenAPI spec is generated by apistos and rendered four ways:

/swagger · /redoc · /rapidoc · /scalar

curl -X POST http://localhost:8083/v1/insert \
  -H "Content-Type: application/json" \
  -d '{"database_id":"my_app","chunks":[{"embedding":[0.1,0.2],"text":"Hello world","metadata":"{}"}]}'

Then query:

curl -X POST http://localhost:8083/v1/search \
  -H "Content-Type: application/json" \
  -d '{"database_id":"my_app","query":[0.1,0.2],"limit":5}'

You’ll get back ranked chunk ids with their text, metadata, and distance.

Next: insert vectors over HTTP, run a nearest-neighbour search, or read how it works.

Frequently Asked Questions

What Rust version does memista need?

Rust 1.56 or newer. memista is a standard crate; cargo add memista pulls it in.

What port does the server use by default?

127.0.0.1:8083. It binds to localhost and does not authenticate — put a reverse proxy in front if it leaves the box.

Related

Try memista

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