botserver/Cargo.toml

255 lines
7.4 KiB
TOML
Raw Normal View History

2025-10-06 10:30:17 -03:00
[package]
2025-10-06 14:55:04 -03:00
name = "botserver"
2025-11-21 23:26:43 -03:00
version = "6.1.0"
2025-10-06 10:30:17 -03:00
edition = "2021"
2026-01-19 15:43:45 -03:00
resolver = "2"
2025-10-06 10:30:17 -03:00
2025-12-03 19:59:27 -03:00
[dependencies.botlib]
path = "../botlib"
2026-01-19 15:43:45 -03:00
features = ["database", "i18n"]
2025-12-03 19:59:27 -03:00
2025-10-06 10:30:17 -03:00
[features]
2026-01-18 19:53:34 -03:00
# ===== SINGLE DEFAULT FEATURE SET =====
2026-01-22 13:57:40 -03:00
default = ["chat", "drive", "tasks", "automation", "cache"]
2025-11-22 01:27:29 -03:00
# ===== COMMUNICATION APPS =====
2026-01-19 15:43:45 -03:00
chat = []
people = []
2026-01-19 15:43:45 -03:00
mail = ["dep:lettre","dep:mailparse", "dep:imap", "dep:native-tls"]
meet = ["dep:livekit"]
social = []
2025-11-22 22:54:45 -03:00
whatsapp = []
telegram = []
2025-11-22 22:54:45 -03:00
instagram = []
msteams = []
communications = ["chat", "people", "mail", "meet", "social", "whatsapp", "telegram", "instagram", "msteams", "cache"]
# ===== PRODUCTIVITY APPS =====
calendar = []
2026-01-22 13:57:40 -03:00
tasks = ["dep:cron", "automation"]
2026-01-19 15:43:45 -03:00
project=["quick-xml"]
goals = []
workspace = []
productivity = ["calendar", "tasks", "project", "goals", "workspace", "cache"]
# ===== DOCUMENT APPS =====
2026-01-19 15:43:45 -03:00
paper = ["docs", "dep:pdf-extract"]
docs = ["docx-rs", "ooxmlsdk"]
2026-01-19 15:43:45 -03:00
sheet = ["calamine", "spreadsheet-ods"]
slides = ["ooxmlsdk"]
2026-01-19 15:43:45 -03:00
drive = ["dep:aws-config", "dep:aws-sdk-s3", "dep:pdf-extract"]
documents = ["paper", "docs", "sheet", "slides", "drive"]
# ===== MEDIA APPS =====
video = []
player = []
canvas = []
media = ["video", "player", "canvas"]
# ===== LEARNING & RESEARCH APPS =====
learn = []
research = ["llm", "vectordb"]
sources = []
learning = ["learn", "research", "sources"]
2025-11-22 22:54:45 -03:00
# ===== ANALYTICS APPS =====
analytics = []
dashboards = []
monitoring = ["dep:sysinfo"]
analytics_suite = ["analytics", "dashboards", "monitoring"]
# ===== DEVELOPMENT TOOLS =====
designer = []
editor = []
2026-01-22 13:57:40 -03:00
automation = ["dep:rhai", "dep:cron"]
development = ["designer", "editor", "automation"]
2025-11-22 22:54:45 -03:00
# ===== ADMIN APPS =====
attendant = []
security = []
settings = []
admin = ["attendant", "security", "settings"]
# ===== CORE TECHNOLOGIES =====
llm = []
vectordb = ["dep:qdrant-client"]
nvidia = []
cache = ["dep:redis"]
compliance = ["dep:csv"]
timeseries = []
weba = []
directory = []
2025-11-22 22:54:45 -03:00
progress-bars = ["dep:indicatif"]
2026-01-19 15:43:45 -03:00
grpc = []
jemalloc = ["dep:tikv-jemallocator", "dep:tikv-jemalloc-ctl"]
console = ["dep:crossterm", "dep:ratatui", "monitoring"]
2025-11-22 22:54:45 -03:00
# ===== BUNDLE FEATURES =====
2025-11-22 22:54:45 -03:00
full = [
2026-01-18 19:53:34 -03:00
"chat", "people", "mail",
"tasks", "calendar",
"drive", "docs",
"llm", "cache", "compliance"
2025-11-22 22:54:45 -03:00
]
2025-12-02 21:09:43 -03:00
minimal = ["chat"]
lightweight = ["chat", "drive", "tasks", "people"]
2025-11-22 01:27:29 -03:00
2025-10-06 10:30:17 -03:00
[dependencies]
2026-01-22 13:57:40 -03:00
diesel_migrations = "2.1"
bigdecimal = { version = "0.4", features = ["serde"] }
2026-01-19 15:43:45 -03:00
# === CORE RUNTIME ===
2025-10-28 14:53:45 -03:00
aes-gcm = "0.10"
2025-10-06 10:30:17 -03:00
anyhow = "1.0"
2025-10-28 14:53:45 -03:00
argon2 = "0.5"
async-lock = "2.8.0"
2025-10-06 10:30:17 -03:00
async-stream = "0.3"
async-trait = "0.1"
2026-01-19 15:43:45 -03:00
axum = { version = "0.7.5", features = ["ws", "multipart", "macros"] }
axum-server = { version = "0.7", features = ["tls-rustls"] }
2025-10-06 10:30:17 -03:00
base64 = "0.22"
bytes = "1.8"
2026-01-18 19:53:34 -03:00
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
color-eyre = "0.6.5"
2026-01-19 21:19:10 -03:00
diesel = { version = "2.1", features = ["postgres", "uuid", "chrono", "serde_json", "r2d2", "numeric"] }
2025-12-28 19:29:18 -03:00
dirs = "5.0"
2025-10-11 12:29:03 -03:00
dotenvy = "0.15"
2025-10-06 10:30:17 -03:00
env_logger = "0.11"
futures = "0.3"
2026-01-18 19:53:34 -03:00
futures-util = { version = "0.3", default-features = false }
tokio-util = { version = "0.7", default-features = false, features = ["codec"] }
2025-11-22 22:54:45 -03:00
hex = "0.4"
hmac = "0.12.1"
2026-01-18 19:53:34 -03:00
hyper = { version = "1.4", default-features = false, features = ["client", "server", "http1", "http2"] }
hyper-rustls = { version = "0.27", default-features = false, features = ["http2"] }
2025-10-06 10:30:17 -03:00
log = "0.4"
num-format = "0.4"
once_cell = "1.18.0"
2025-10-28 14:53:45 -03:00
rand = "0.9.2"
2025-10-06 10:30:17 -03:00
regex = "1.11"
2026-01-22 13:57:40 -03:00
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "multipart", "stream"] }
2026-01-18 19:53:34 -03:00
serde = { version = "1.0", default-features = false, features = ["derive", "std"] }
2025-10-06 10:30:17 -03:00
serde_json = "1.0"
toml = "0.8"
2025-10-28 14:53:45 -03:00
sha2 = "0.10.9"
sha1 = "0.10.6"
2026-01-19 21:19:10 -03:00
tokio = { version = "1.41", default-features = false, features = ["full", "process", "process"] }
2025-10-06 10:30:17 -03:00
tokio-stream = "0.1"
2025-11-29 17:27:13 -03:00
tower = "0.4"
2026-01-19 15:43:45 -03:00
tower-http = { version = "0.5", default-features = false, features = ["cors", "fs", "trace"] }
2025-10-06 10:30:17 -03:00
tracing = "0.1"
2026-01-18 19:53:34 -03:00
tracing-subscriber = { version = "0.3", default-features = false }
2025-10-06 10:30:17 -03:00
urlencoding = "2.1"
2026-01-22 13:57:40 -03:00
uuid = { version = "1.11", default-features = false, features = ["v4", "v5"] }
2025-11-22 22:54:45 -03:00
2025-11-29 16:29:28 -03:00
# === TLS/SECURITY DEPENDENCIES ===
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] }
tokio-rustls = "0.26"
2026-01-22 13:57:40 -03:00
rcgen = { version = "0.14", default-features = false, features = ["crypto", "ring", "pem"] } # Added ring and pem features
2025-11-29 16:29:28 -03:00
x509-parser = "0.15"
2025-12-28 19:29:18 -03:00
rustls-native-certs = "0.8"
2025-11-29 16:29:28 -03:00
webpki-roots = "0.25"
ring = "0.17"
ciborium = "0.2"
2026-01-18 19:53:34 -03:00
time = { version = "0.3", default-features = false, features = ["formatting"] }
2025-11-29 16:29:28 -03:00
jsonwebtoken = "9.3"
tower-cookies = "0.10"
# === APP-SPECIFIC DEPENDENCIES ===
2025-11-22 22:54:45 -03:00
2026-01-19 15:43:45 -03:00
# mail Integration (mail feature)
2025-11-22 22:54:45 -03:00
imap = { version = "3.0.0-alpha.15", optional = true }
2026-01-19 16:32:40 -03:00
lettre = { version = "0.11", features = ["smtp-transport", "builder"], optional = true }
2025-11-22 22:54:45 -03:00
mailparse = { version = "0.15", optional = true }
native-tls = { version = "0.2", optional = true }
2025-11-22 22:54:45 -03:00
# Video Meetings (meet feature)
livekit = { version = "0.7", optional = true }
# Vector Database (vectordb feature)
qdrant-client = { version = "1.12", optional = true }
2026-01-19 15:43:45 -03:00
# Document Processing
docx-rs = { version = "0.4", optional = true }
2026-01-18 19:53:34 -03:00
ooxmlsdk = { version = "0.3", default-features = false, optional = true }
calamine = { version = "0.26", optional = true }
spreadsheet-ods = { version = "1.0", optional = true }
2025-11-22 22:54:45 -03:00
# File Storage & Drive (drive feature)
2026-01-18 19:53:34 -03:00
aws-config = { version = "1.8.8", default-features = false, optional = true }
aws-sdk-s3 = { version = "1.109.0", default-features = false, optional = true }
2025-11-22 22:54:45 -03:00
pdf-extract = { version = "0.10.0", optional = true }
2026-01-19 21:19:10 -03:00
quick-xml = { version = "0.37", optional=true, features = ["serialize"] }
2026-01-19 15:43:45 -03:00
flate2 = { version = "1.0", optional = false }
zip = { version = "2.2", optional = false }
tar = { version = "0.4", optional = false }
2025-11-22 22:54:45 -03:00
# Task Management (tasks feature)
cron = { version = "0.15.0", optional = true }
# Automation & Scripting (automation feature)
2026-01-18 19:53:34 -03:00
rhai = { version = "1.23", features = ["sync"], optional = true }
2025-11-22 22:54:45 -03:00
# Compliance & Reporting (compliance feature)
csv = { version = "1.3", optional = true }
# Console/TUI (console feature)
crossterm = { version = "0.29.0", optional = true }
ratatui = { version = "0.29", optional = true }
2025-11-22 22:54:45 -03:00
# QR Code Generation
png = "0.18"
qrcode = { version = "0.14", default-features = false }
2025-11-30 22:33:54 -03:00
# Error handling
thiserror = "2.0"
# Caching/Sessions (cache feature)
2026-01-18 19:53:34 -03:00
redis = { version = "0.27", default-features = false, features = ["tokio-comp"], optional = true }
2025-11-22 22:54:45 -03:00
# System Monitoring (monitoring feature)
sysinfo = { version = "0.37.2", optional = true }
# Networking/gRPC (grpc feature)
2026-01-19 15:43:45 -03:00
tonic = { version = "0.14.2", default-features = false, features = ["transport"], optional = true }
2025-11-22 22:54:45 -03:00
# UI Enhancement (progress-bars feature)
indicatif = { version = "0.18.0", optional = true }
smartstring = "1.0.1"
# Memory allocator (jemalloc feature)
tikv-jemallocator = { version = "0.6", optional = true }
2026-01-18 19:53:34 -03:00
tikv-jemalloc-ctl = { version = "0.6", default-features = false, optional = true }
2025-11-22 22:54:45 -03:00
scopeguard = "1.2.0"
# Vault secrets management
vaultrs = "0.7"
# Calendar standards (RFC 5545)
icalendar = "0.17"
# Layered configuration
2026-01-18 19:53:34 -03:00
figment = { version = "0.10", default-features = false, features = ["toml"] }
# Rate limiting
governor = "0.10"
# RSS feed parsing
rss = "2.0"
# HTML parsing/web scraping
scraper = "0.25"
2025-12-21 23:40:43 -03:00
walkdir = "2.5.0"
2026-01-18 19:53:34 -03:00
# Embedded static files
rust-embed = "8.5"
mime_guess = "2.0"
2026-01-18 19:53:34 -03:00
hyper-util = { version = "0.1.19", default-features = false, features = ["client-legacy"] }
http-body-util = "0.1.3"
2025-11-22 22:54:45 -03:00
[dev-dependencies]
mockito = "1.7.0"
tempfile = "3"
2026-01-22 13:57:40 -03:00
bigdecimal = { version = "0.4", features = ["serde"] }