[package]
edition = "2021"
rust-version = "1.91"
name = "ares-server"
version = "0.3.3"
authors = ["Dirmacs <build@dirmacs.com>"]
build = "build.rs"
exclude = [
"data/*",
"target/*",
".env",
".env.example",
"*.db",
"docker-compose*.yml",
"Dockerfile",
"hurl/*",
"scripts/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A.R.E.S - Agentic Retrieval Enhanced Server: A production-grade agentic chatbot server with multi-provider LLM support, tool calling, RAG, and MCP integration"
homepage = "https://github.com/dirmacs/ares"
documentation = "https://docs.rs/ares-server"
readme = "README.md"
keywords = [
"llm",
"chatbot",
"agent",
"rag",
"ai",
]
categories = [
"web-programming",
"asynchronous",
"command-line-utilities",
]
license = "MIT"
repository = "https://github.com/dirmacs/ares"
[package.metadata.docs.rs]
features = [
"ollama",
"openai",
"local-db",
"turso",
"mcp",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
all-db = [
"local-db",
"turso",
"qdrant",
]
all-llm = [
"ollama",
"openai",
"llamacpp",
]
all-vectorstores = [
"ares-vector",
"qdrant",
"pgvector",
"chromadb",
"pinecone",
]
ares-vector = ["dep:ares-vector"]
chromadb = ["dep:chromadb"]
default = [
"local-db",
"ollama",
"ares-vector",
]
full = [
"ollama",
"openai",
"llamacpp",
"turso",
"qdrant",
"ares-vector",
"mcp",
"swagger-ui",
]
full-ui = [
"full",
"ui",
]
lancedb = [
"dep:lancedb",
"dep:lance",
]
llamacpp = ["dep:llama-cpp-2"]
llamacpp-cuda = [
"llamacpp",
"llama-cpp-2/cuda",
]
llamacpp-metal = [
"llamacpp",
"llama-cpp-2/metal",
]
llamacpp-vulkan = [
"llamacpp",
"llama-cpp-2/vulkan",
]
local-db = []
local-vectorstores = ["ares-vector"]
mcp = ["dep:rmcp"]
minimal = []
ollama = ["dep:ollama-rs"]
openai = ["dep:async-openai"]
pgvector = ["dep:sqlx"]
pinecone = ["dep:pinecone-sdk"]
qdrant = ["dep:qdrant-client"]
swagger-ui = ["dep:utoipa-swagger-ui"]
turso = []
ui = [
"dep:rust-embed",
"dep:mime_guess",
]
[lib]
name = "ares"
path = "src/lib.rs"
[[bin]]
name = "ares-server"
path = "src/main.rs"
[[test]]
name = "api_tests"
path = "tests/api_tests.rs"
[[test]]
name = "cli_tests"
path = "tests/cli_tests.rs"
[[test]]
name = "integration_toml_tests"
path = "tests/integration_toml_tests.rs"
[[test]]
name = "llm_tests"
path = "tests/llm_tests.rs"
[[test]]
name = "ollama_integration_tests"
path = "tests/ollama_integration_tests.rs"
[[test]]
name = "ollama_live_tests"
path = "tests/ollama_live_tests.rs"
[[test]]
name = "rag_live_tests"
path = "tests/rag_live_tests.rs"
[[test]]
name = "toon_integration_tests"
path = "tests/toon_integration_tests.rs"
[dependencies.anyhow]
version = "1.0.100"
[dependencies.arc-swap]
version = "1.7.1"
[dependencies.ares-vector]
version = "0.1.1"
features = ["serde"]
optional = true
[dependencies.argon2]
version = "0.5.3"
[dependencies.async-openai]
version = "0.31.1"
features = ["chat-completion"]
optional = true
[dependencies.async-stream]
version = "0.3.6"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.axum]
version = "0.8.7"
features = [
"macros",
"multipart",
]
[dependencies.chromadb]
version = "2.3.0"
optional = true
[dependencies.chrono]
version = "0.4.42"
features = ["serde"]
[dependencies.clap]
version = "4.5"
features = [
"derive",
"color",
"env",
"suggestions",
]
[dependencies.config]
version = "0.15.19"
[dependencies.daedra]
version = "0.1.4"
[dependencies.dotenvy]
version = "0.15.7"
[dependencies.fastembed]
version = "5.5.0"
[dependencies.futures]
version = "0.3.31"
[dependencies.jsonwebtoken]
version = "10.3.0"
features = [
"aws_lc_rs",
"use_pem",
]
default-features = false
[dependencies.lance]
version = "1.0.1"
features = ["protoc"]
optional = true
default-features = false
[dependencies.lancedb]
version = "0.23.1"
optional = true
[dependencies.libsql]
version = "0.9.29"
features = [
"core",
"replication",
]
[dependencies.llama-cpp-2]
version = "0.1.130"
optional = true
[dependencies.lru]
version = "0.16"
[dependencies.mime_guess]
version = "2.0"
optional = true
[dependencies.notify]
version = "8.2.0"
features = ["macos_fsevent"]
[dependencies.ollama-rs]
version = "0.3.3"
features = ["stream"]
optional = true
[dependencies.owo-colors]
version = "4.1"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.pinecone-sdk]
version = "0.1.2"
optional = true
[dependencies.qdrant-client]
version = "1.16.0"
optional = true
[dependencies.rand]
version = "0.9.2"
[dependencies.reqwest]
version = "0.12.26"
features = ["json"]
[dependencies.rig-core]
version = "0.27.0"
[dependencies.rmcp]
version = "0.12.0"
features = [
"server",
"client",
"transport-io",
"macros",
]
optional = true
[dependencies.rust-embed]
version = "8.9"
optional = true
[dependencies.schemars]
version = "1.1.0"
features = ["derive"]
[dependencies.scraper]
version = "0.25.0"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.145"
[dependencies.sha2]
version = "0.10.9"
[dependencies.sqlx]
version = "0.8.6"
features = [
"runtime-tokio",
"postgres",
"tls-rustls",
]
optional = true
[dependencies.text-splitter]
version = "0.19"
features = ["tiktoken-rs"]
[dependencies.thiserror]
version = "2.0.17"
[dependencies.tokio]
version = "1.48.0"
features = ["full"]
[dependencies.toml]
version = "0.9.8"
[dependencies.toon-format]
version = "0.4.1"
[dependencies.tower]
version = "0.5.2"
features = ["full"]
[dependencies.tower-http]
version = "0.6.8"
features = [
"trace",
"cors",
"compression-gzip",
"limit",
]
[dependencies.tower-sessions]
version = "0.14.0"
[dependencies.tower_governor]
version = "0.8"
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-subscriber]
version = "0.3.22"
features = [
"env-filter",
"json",
]
[dependencies.utoipa]
version = "5.4.0"
features = [
"axum_extras",
"chrono",
"uuid",
]
[dependencies.utoipa-swagger-ui]
version = "9.0.2"
features = ["axum"]
optional = true
[dependencies.uuid]
version = "1.19.0"
features = [
"v4",
"serde",
]
[dev-dependencies.axum-test]
version = "18.4.1"
[dev-dependencies.mockall]
version = "0.14.0"
[dev-dependencies.rstest]
version = "0.26.1"
[dev-dependencies.tempfile]
version = "3.23.0"
[dev-dependencies.wiremock]
version = "0.6.5"
[profile.dev]
opt-level = 0
debug = 2
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true
[profile.test]
opt-level = 0
debug = 2