Vapora/Cargo.toml

197 lines
5.3 KiB
TOML
Raw Normal View History

[workspace]
resolver = "2"
members = [
"crates/vapora-backend",
"crates/vapora-frontend",
"crates/vapora-shared",
"crates/vapora-agents",
"crates/vapora-llm-router",
"crates/vapora-mcp-server",
"crates/vapora-tracking",
"crates/vapora-worktree",
"crates/vapora-knowledge-graph",
"crates/vapora-analytics",
"crates/vapora-swarm",
"crates/vapora-telemetry",
]
[workspace.package]
version = "1.2.0"
edition = "2021"
rust-version = "1.75"
authors = ["VAPORA Team"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/vapora/vapora"
homepage = "https://vapora.dev"
keywords = ["multi-agent", "llm", "cloud-native", "orchestration"]
categories = ["development-tools", "web-programming"]
[workspace.dependencies]
# Vapora internal crates
vapora-shared = { path = "crates/vapora-shared" }
vapora-agents = { path = "crates/vapora-agents" }
vapora-llm-router = { path = "crates/vapora-llm-router" }
vapora-worktree = { path = "crates/vapora-worktree" }
vapora-knowledge-graph = { path = "crates/vapora-knowledge-graph" }
vapora-analytics = { path = "crates/vapora-analytics" }
vapora-swarm = { path = "crates/vapora-swarm" }
vapora-telemetry = { path = "crates/vapora-telemetry" }
# SecretumVault - Post-quantum secrets management
secretumvault = { path = "../secretumvault", default-features = false, features = ["server", "surrealdb-storage", "openssl", "cedar"] }
# Leptos ecosystem (CSR-only for frontend)
leptos = { version = "0.8.12" }
leptos_router = { version = "0.8.9" }
leptos_meta = { version = "0.8.5" }
# Web Framework (Backend)
axum = "0.8.6"
tower = "0.5.2"
tower-http = { version = "0.6.6", features = ["fs", "cors", "trace", "compression-full"] }
# Async runtime
tokio = { version = "1.48", features = ["rt-multi-thread", "macros", "fs", "net", "sync"] }
futures = "0.3.31"
async-trait = "0.1.89"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.9"
serde_yaml = { version = "0.9" }
# Error handling
thiserror = "2.0.17"
anyhow = "1.0.100"
# HTTP
http = "1"
reqwest = { version = "0.12.24", features = ["json", "rustls-tls"] }
reqwasm = "0.5.0"
# Logging and tracing
log = "0.4.28"
env_logger = "0.11"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# WASM support
wasm-bindgen = "0.2.105"
wasm-bindgen-futures = "0.4.55"
wasm-bindgen-test = "0.3"
serde-wasm-bindgen = "0.6.5"
console_error_panic_hook = "0.1.7"
console_log = "1"
js-sys = "0.3.82"
web-sys = { version = "0.3.82", features = ["Clipboard", "Window", "Navigator", "Permissions", "MouseEvent", "Storage", "console", "File"] }
# Gloo ecosystem
gloo-timers = { version = "0.3", features = ["futures"] }
gloo-net = { version = "0.6.0" }
# Utilities
rand = "0.9"
rand_core = { version = "0.6", features = ["getrandom"] }
getrandom = { version = "0.2", features = ["std", "js"] }
uuid = { version = "1.18", features = ["v4", "serde", "js"] }
chrono = { version = "0.4", features = ["serde"] }
regex = "1.12.2"
hex = "0.4.3"
base64 = { version = "0.22" }
# Configuration
dotenv = "0.15.0"
once_cell = "1.21.3"
# TLS Support
axum-server = { version = "0.7", features = ["tls-rustls"] }
rustls = { version = "0.23" }
rustls-pemfile = { version = "2.2" }
# Authentication & Authorization
jsonwebtoken = { version = "10.2", features = ["rust_crypto"] }
argon2 = { version = "0.5" }
oauth2 = { version = "5.0" }
tower-sessions = { version = "0.14" }
tower-cookies = { version = "0.11" }
time = { version = "0.3", features = ["serde"] }
# Database
sqlx = { version = "0.8.6", features = ["runtime-tokio-rustls", "postgres", "sqlite", "chrono", "uuid", "migrate"] }
# Note: SurrealDB will be added when available in workspace
surrealdb = "2.3"
# Message Queue
# Note: async-nats will be added when available in workspace
async-nats = "0.45"
# LLM Agent Framework & RAG
rig-core = "0.15"
# Embeddings: Use provider APIs (Claude, OpenAI, Gemini, Ollama) instead of fastembed
# - rig-core integrates with all major providers
# - Routing through vapora-llm-router for optimal provider selection
# - Phase 3: Implement embedding service using provider APIs
# Cryptography
aes-gcm = { version = "0.10" }
sha2 = { version = "0.10" }
# Metrics & Observability
prometheus = { version = "0.14" }
opentelemetry = { version = "0.22", features = ["trace", "metrics"] }
opentelemetry-jaeger = { version = "0.21", features = ["rt-tokio"] }
opentelemetry_sdk = { version = "0.22", features = ["rt-tokio"] }
tracing-opentelemetry = "0.23"
# File system
glob = "0.3.3"
walkdir = "2.5"
tempfile = { version = "3.23" }
notify = { version = "8.2.0", default-features = false, features = ["macos_fsevent"] }
ignore = "0.4"
# CLI support
clap = { version = "4.5", features = ["derive"] }
dialoguer = "0.12"
console = "0.16"
indicatif = "0.18"
# Async compression
async-compression = { version = "0.4", features = ["gzip", "tokio"] }
# Utility
cfg-if = "1.0"
paste = "1.0.15"
typed-builder = "0.23"
shellexpand = "3.1"
semver = "1.0"
pathdiff = "0.2"
dashmap = "5.5"
parking_lot = "0.12"
# Testing
mockall = "0.13"
wiremock = "0.6"
axum-test = "18.2"
mockito = "0.31"
criterion = { version = "0.5", features = ["async_tokio"] }
# Proc macros
syn = { version = "2.0", features = ["full"] }
quote = "1.0"
proc-macro2 = "1.0"
[profile.release]
codegen-units = 1
lto = true
opt-level = "z"
[profile.dev]
opt-level = 0
debug = true
[profile.test]
opt-level = 0