Memista combines SQLite for metadata storage with USearch for vector similarity search. It's designed for developers who need a simple, self-contained vector search solution without the complexity of dedicated vector databases.
Why Memista?
- Zero infrastructure - Single binary, no external services required
- Familiar storage - SQLite for metadata means easy debugging and backups
- Simple API - REST endpoints that just work
- Rust library - Embed directly in your application
- Multi-tenant ready - Isolated databases via
database_id
Note: Memista is experimental and best suited for prototypes, small-to-medium datasets, and applications where simplicity matters more than scale.
Quick Start
Install & Run
Server starts at http://127.0.0.1:8083
Store a vector
Search for similar vectors
Use as a Library
Add to your Cargo.toml:
[]
= "0.1"
use ;
use ;
use Arc;
async
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/v1/insert |
POST | Store chunks with embeddings |
/v1/search |
POST | Find similar chunks |
/v1/drop |
DELETE | Remove a database |
/openapi.json |
GET | OpenAPI specification |
/swagger-ui/ |
GET | Interactive API docs |
Configuration
# Environment variables (or use .env file)
DATABASE_PATH=memista.db # SQLite file location
SERVER_HOST=127.0.0.1 # Bind address
SERVER_PORT=8083 # Listen port
LOG_LEVEL=info # debug|info|warn|error
Project Structure
memista/
├── src/ # Core library and server
├── examples/ # Usage examples
├── benchmarks/ # Performance scripts
├── documentation/ # MkDocs site
├── scripts/ # Dev utilities
└── config/ # Sample configurations
Examples
Documentation
Local docs:
&& &&
- User Guide - Getting started & examples
- API Reference - Rust documentation
Limitations
Be aware of these constraints:
- Embedding dimensions: Currently hardcoded to 2D (demo purposes)
- Scale: Not tested beyond ~100k vectors
- Persistence: Index rebuilds on dimension changes
- No auth: Add a reverse proxy for production
Contributing
Contributions welcome! This is an experimental project, so:
- Open an issue first for major changes
- Keep PRs focused and small
- Add tests for new functionality
License
GPL-3.0 - Free to use, modify, and distribute with same license.