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 serverEnables 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 doesEnables 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 MSVCEnables 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
mcpandpostgres. Therun_mcp_serverentry in main.rs is already gated byall(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 behindcfg(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 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 backendEnables 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