ares-store 0.9.1

Database and vector store clients for ARES
Documentation

Database Clients and Vector Stores

This module provides database abstractions for:

  • PostgreSQL: Relational database for conversations, users, etc.
  • Vector Stores: Multi-provider vector database support

Relational Database

The [PostgresClient] provides async access to PostgreSQL for:

  • User management (registration, authentication)
  • Conversation storage and retrieval
  • Message history
  • User memory (facts, preferences)

Vector Store Providers

The following vector store backends are supported:

  • ares-vector (default) - Pure Rust embedded HNSW vector database
  • lancedb - Serverless, embedded vector database (may have build issues on Windows)
  • qdrant - High-performance vector search engine
  • pgvector - PostgreSQL extension
  • chromadb - Simple embedding database
  • pinecone - Managed cloud service

Enable providers via Cargo features:

ares = { version = "*", features = ["ares-vector", "qdrant"] }

Example

use ares::db::{PostgresClient, VectorStore, AresVectorStore};

// Relational database
let db = PostgresClient::new("postgres://user:pass@localhost:5432/ares").await?;
let user = db.get_user_by_id(user_id).await?;

// Vector store
let vector_store = AresVectorStore::new("./vectors").await?;
vector_store.upsert("docs", embeddings, metadata).await?;
let results = vector_store.search("docs", query_embedding, 10).await?;