Cargo Features

[dependencies]
ares-server = { version = "0.7.5", default-features = false, features = ["ollama", "openai", "llamacpp", "anthropic", "llamacpp-cuda", "llamacpp-metal", "llamacpp-vulkan", "postgres", "turso", "ares-vector", "lancedb", "qdrant", "pgvector", "chromadb", "pinecone", "mcp", "eruka-context", "local-embeddings", "skills", "email", "search-tools", "ui", "swagger-ui", "all-llm", "all-db", "all-vectorstores", "local-vectorstores", "full", "full-local-embeddings", "full-ui", "full-ui-local-embeddings", "minimal"] }
default = ares-vector, mcp, ollama, postgres

Default features for local-first development

ollama default all-llm? full?

============= LLM Providers =============
Ollama - Local LLM inference via Ollama server

Enables ollama-rs

LLM Providers (optional)

Affects llm::ollama

openai all-llm? full?

OpenAI - OpenAI API and compatible endpoints

Enables async-openai ^0.33.1

Affects llm::openai

llamacpp all-llm? full? llamacpp-cuda? llamacpp-metal? llamacpp-vulkan?

LlamaCpp - Direct GGUF model loading via llama.cpp

Enables llama-cpp-2

Affects llm::llamacpp

anthropic all-llm? full?

Anthropic - Claude API

Enables claude-sdk

Affects llm::anthropic

llamacpp-cuda = llamacpp

LlamaCpp GPU backends (mutually exclusive - pick one)

Enables cuda of llama-cpp-2

llamacpp-metal = llamacpp

Enables metal of llama-cpp-2

llamacpp-vulkan = llamacpp

Enables vulkan of llama-cpp-2

postgres default all-db? full?

============= Database Backends =============
PostgreSQL database via sqlx (default)

Enables sqlx

Affects agents::orchestrator, agents::tenant_agent, db::agent_runs, db::alerts, db::audit_log, db::postgres, db::tenant_agents, db::tenants, db::traits, db::agent_versions, ares-server::api, ares-server::auth, ares-server::middleware, ares-server::research, ares-server::workflows, ares-server::AppState, ares-server::base_router, mcp::server, mcp::auth, mcp::usage

turso

Turso/libSQL - Edge-native SQLite-compatible database

Enables libsql ^0.6

Affects db::turso

ares-vector default all-vectorstores? full? local-vectorstores?

============= Vector Store Backends =============
ares-vector - Pure Rust embedded vector database with HNSW (default, local-first)
No native dependencies, compiles anywhere Rust does

Enables ares-vector

Vector database (optional)
ares-vector - Pure Rust embedded vector DB (default, recommended)

Affects db::ares_vector, handlers::rag

lancedb

LanceDB - Serverless, embedded vector database
Note: Requires protoc compilation, may have issues on Windows MSVC

Enables lance ^1.0.1 and lancedb ^0.23.1

lance:

Lance with protoc feature compiles protobuf compiler from source - may have issues on Windows

Affects db::lancedb

qdrant all-vectorstores? full?

Qdrant vector database for semantic search

Enables qdrant-client

External vector DBs

Affects db::qdrant

pgvector all-vectorstores?

pgvector - PostgreSQL extension for vector similarity search

Affects db::pgvector

chromadb all-vectorstores?

ChromaDB - Simple, open-source embedding database

Enables chromadb

Affects db::chromadb

pinecone all-vectorstores?

Pinecone - Managed cloud vector database (alpha)

Enables pinecone-sdk

Affects db::pinecone

mcp default full?

============= Additional Features ============= MCP (Model Context Protocol) protocol glue, client, auth, extension, registry, and tool plumbing. Zero postgres dependency — enables MCP consumers.

To run the ARES MCP server (mcp/server.rs + mcp/usage.rs, which query tenant DB via sqlx::PgPool), enable both mcp and postgres. The run_mcp_server entry in main.rs is already gated by all(feature = "postgres", feature = "mcp").

Decoupled in 0.7.5. 0.7.4 coarsely coupled mcp -> postgres (bandaid for the 0.7.3 compile break when mcp was enabled alone); 0.7.5 moves server/usage behind cfg(all(mcp, postgres)) so library consumers can use mcp without dragging sqlx into their dependency graph.

Enables rmcp ^0.12.0

MCP support (optional)

Affects ares-server::mcp, ares-server::AppState.mcp_registry, mcp::extension, mcp::tools, mcp::client, mcp::registry, tools::mcp_bridge, mcp::server, mcp::auth, mcp::usage

eruka-context

Eruka context injection - fetches per-agent context from Eruka with caching

local-embeddings full-local-embeddings? full-ui-local-embeddings?

Local embeddings - fastembed-based ONNX embedding models WARNING: This feature does NOT work on Windows MSVC due to ort-sys linker errors.
Use WSL, Linux, or macOS for local embeddings, or use remote embedding APIs instead.

Enables fastembed

Embeddings and RAG

Affects rag::embeddings, rag::reranker, handlers::rag

skills

Skills - SKILL.md file discovery and loading via thulp

Enables thulp-skill-files

Skills (optional)

Affects handlers::skills, ares-server::skills, skills::loader, toml_config::AresConfig.skills, toml_config::SkillsTomlConfig

email

Email sending via SMTP (opt-in, requires lettre feature)

Enables lettre

Email sending via SMTP (optional — gated by email feature)

search-tools

Web search and scraping tools (opt-in, daedra + scraper)

Enables daedra ^0.1.4 and scraper ^0.25.0

daedra:

Web scraping and search (optional — gated by search-tools feature)

Affects tools::search, tools::web_scrape

ui full-ui?

============= UI =============
Embedded UI - serves the Leptos frontend from the backend

Enables mime_guess and rust-embed

rust-embed:

UI embedding (optional)

swagger-ui full?

Swagger UI - interactive API documentation (requires network during build)

Enables utoipa-swagger-ui

all-llm = anthropic, llamacpp, ollama, openai

============= Feature Bundles =============
All LLM providers

all-db = postgres

All database backends

all-vectorstores = ares-vector, chromadb, pgvector, pinecone, qdrant

All vector stores (excluding lancedb due to protoc issues on Windows)

local-vectorstores = ares-vector

Local-first vector stores (no external server required)

full full-local-embeddings? full-ui? = anthropic, ares-vector, llamacpp, mcp, ollama, openai, postgres, qdrant, swagger-ui

Full feature set for development/testing (Windows-compatible)
Note: local-embeddings excluded due to ort-sys linker issues on Windows MSVC

full-local-embeddings = full, local-embeddings

Full feature set with local embeddings (Linux/macOS only - NOT Windows MSVC)

full-ui full-ui-local-embeddings? = full, ui

Full feature set with UI

full-ui-local-embeddings = full-ui, local-embeddings

Full feature set with UI and local embeddings (Linux/macOS only)

minimal

Minimal build - no optional features