botserver/Cargo.toml

280 lines
8.2 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]
2026-01-23 09:37:42 -03:00
workspace = true
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 =====
# Note: automation (Rhai scripting) is required for .gbot script execution
default = ["chat", "automation", "drive", "tasks", "cache", "directory"]
# ===== CORE CAPABILITIES (Internal Bundles) =====
storage_core = ["dep:aws-config", "dep:aws-sdk-s3", "dep:aws-smithy-async"]
automation_core = ["dep:rhai", "dep:cron"]
cache_core = ["dep:redis"]
mail_core = ["dep:lettre", "dep:mailparse", "dep:imap", "dep:native-tls"]
realtime_core = ["dep:livekit"]
pdf_core = ["dep:pdf-extract"]
2025-11-22 01:27:29 -03:00
# ===== COMMUNICATION APPS =====
2026-01-19 15:43:45 -03:00
chat = []
people = []
mail = ["mail_core"]
meet = ["realtime_core"]
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 = []
# Tasks requires automation (scripts) and drive (attachments)
tasks = ["automation", "drive", "monitoring"]
project = ["quick-xml"]
goals = []
workspace = []
workspaces = ["workspace"]
tickets = []
billing = []
productivity = ["calendar", "tasks", "project", "goals", "workspaces", "cache"]
# ===== DOCUMENT APPS =====
paper = ["docs", "pdf"]
docs = ["docx-rs", "ooxmlsdk"]
2026-01-19 15:43:45 -03:00
sheet = ["calamine", "spreadsheet-ods"]
slides = ["ooxmlsdk"]
drive = ["storage_core", "pdf"]
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 = []
automation = ["automation_core"]
development = ["designer", "editor", "automation"]
2025-11-22 22:54:45 -03:00
# ===== ADMIN APPS =====
attendant = []
security = []
settings = []
admin = ["attendant", "security", "settings"]
# ===== COMPATIBILITY ALIASES =====
# These ensure old feature names still work or map correctly
pdf = ["pdf_core"]
cache = ["cache_core"]
# ===== CORE TECHNOLOGIES =====
llm = []
vectordb = ["dep:qdrant-client"]
nvidia = []
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
]
# Minimal build includes core infrastructure: automation (Rhai), drive (S3), cache (Redis)
# These are deeply integrated and used throughout the codebase
minimal = ["chat", "automation", "drive", "cache"]
lightweight = ["chat", "drive", "tasks", "people"]
2025-11-22 01:27:29 -03:00
2025-10-06 10:30:17 -03:00
[dependencies]
2026-01-23 09:37:42 -03:00
diesel_migrations = { workspace = true }
bigdecimal = { workspace = true }
2026-01-19 15:43:45 -03:00
# === CORE RUNTIME ===
2026-01-23 09:37:42 -03:00
aes-gcm = { workspace = true }
anyhow = { workspace = true }
argon2 = { workspace = true }
async-lock = { workspace = true }
async-stream = { workspace = true }
async-trait = { workspace = true }
axum = { workspace = true }
axum-server = { workspace = true }
base64 = { workspace = true }
bytes = { workspace = true }
chrono = { workspace = true, features = ["clock", "std"] }
color-eyre = { workspace = true }
diesel = { workspace = true, features = ["postgres", "uuid", "chrono", "serde_json", "r2d2", "numeric", "32-column-tables"] }
2026-01-23 09:37:42 -03:00
dirs = { workspace = true }
dotenvy = { workspace = true }
env_logger = { workspace = true }
futures = { workspace = true }
futures-util = { workspace = true }
tokio-util = { workspace = true, features = ["codec"] }
hex = { workspace = true }
hmac = { workspace = true }
hyper = { workspace = true, features = ["client", "server", "http1", "http2"] }
hyper-rustls = { workspace = true, features = ["http2"] }
log = { workspace = true }
num-format = { workspace = true }
once_cell = { workspace = true }
rand = { workspace = true }
regex = { workspace = true }
reqwest = { workspace = true, features = ["rustls-tls", "multipart", "stream", "json"] }
serde = { workspace = true, features = ["derive", "std"] }
serde_json = { workspace = true }
toml = { workspace = true }
sha2 = { workspace = true }
sha1 = { workspace = true }
tokio = { workspace = true, features = ["full", "process"] }
tokio-stream = { workspace = true }
tower = { workspace = true }
tower-http = { workspace = true, features = ["cors", "fs", "trace"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
urlencoding = { workspace = true }
uuid = { workspace = true, features = ["v4", "v5"] }
2025-11-22 22:54:45 -03:00
2025-11-29 16:29:28 -03:00
# === TLS/SECURITY DEPENDENCIES ===
2026-01-23 09:37:42 -03:00
rustls = { workspace = true, features = ["ring", "std", "tls12"] }
tokio-rustls = { workspace = true }
rcgen = { workspace = true, features = ["crypto", "ring", "pem"] }
x509-parser = { workspace = true }
rustls-native-certs = { workspace = true }
webpki-roots = { workspace = true }
ring = { workspace = true }
ciborium = { workspace = true }
time = { workspace = true, features = ["formatting"] }
jsonwebtoken = { workspace = true }
tower-cookies = { workspace = true }
2025-11-29 16:29:28 -03:00
# === APP-SPECIFIC DEPENDENCIES ===
2025-11-22 22:54:45 -03:00
2026-01-19 15:43:45 -03:00
# mail Integration (mail feature)
2026-01-23 09:37:42 -03:00
imap = { workspace = true, optional = true }
lettre = { workspace = true, optional = true }
mailparse = { workspace = true, optional = true }
native-tls = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# Video Meetings (meet feature)
2026-01-23 09:37:42 -03:00
livekit = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# Vector Database (vectordb feature)
2026-01-23 09:37:42 -03:00
qdrant-client = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
2026-01-19 15:43:45 -03:00
# Document Processing
2026-01-23 09:37:42 -03:00
docx-rs = { workspace = true, optional = true }
ooxmlsdk = { workspace = true, optional = true }
calamine = { workspace = true, optional = true }
spreadsheet-ods = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# File Storage & Drive (drive feature)
2026-01-23 09:37:42 -03:00
aws-config = { workspace = true, features = ["behavior-version-latest", "rt-tokio", "rustls"], optional = true }
aws-sdk-s3 = { workspace = true, features = ["rt-tokio", "rustls"], optional = true }
aws-smithy-async = { workspace = true, optional = true }
pdf-extract = { workspace = true, optional = true }
quick-xml = { workspace = true, optional = true }
flate2 = { workspace = true }
zip = { workspace = true }
tar = { workspace = true }
2025-11-22 22:54:45 -03:00
# Task Management (tasks feature)
2026-01-23 09:37:42 -03:00
cron = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# Automation & Scripting (automation feature)
2026-01-23 09:37:42 -03:00
rhai = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# Compliance & Reporting (compliance feature)
2026-01-23 09:37:42 -03:00
csv = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# Console/TUI (console feature)
2026-01-23 09:37:42 -03:00
crossterm = { workspace = true, optional = true }
ratatui = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# QR Code Generation
2026-01-23 09:37:42 -03:00
png = { workspace = true }
qrcode = { workspace = true }
2025-11-30 22:33:54 -03:00
# Error handling
2026-01-23 09:37:42 -03:00
thiserror = { workspace = true }
2025-11-30 22:33:54 -03:00
# Caching/Sessions (cache feature)
2026-01-23 09:37:42 -03:00
redis = { workspace = true, features = ["tokio-comp"], optional = true }
2025-11-22 22:54:45 -03:00
# System Monitoring (monitoring feature)
2026-01-23 09:37:42 -03:00
sysinfo = { workspace = true, optional = true }
2025-11-22 22:54:45 -03:00
# Networking/gRPC (grpc feature)
2026-01-23 09:37:42 -03:00
tonic = { workspace = true, features = ["transport"], optional = true }
2025-11-22 22:54:45 -03:00
# UI Enhancement (progress-bars feature)
2026-01-23 09:37:42 -03:00
indicatif = { workspace = true, optional = true }
smartstring = { workspace = true }
# Memory allocator (jemalloc feature)
2026-01-23 09:37:42 -03:00
tikv-jemallocator = { workspace = true, optional = true }
tikv-jemalloc-ctl = { workspace = true, optional = true }
scopeguard = { workspace = true }
2025-11-22 22:54:45 -03:00
# Vault secrets management
2026-01-23 09:37:42 -03:00
vaultrs = { workspace = true }
# Calendar standards (RFC 5545)
2026-01-23 09:37:42 -03:00
icalendar = { workspace = true }
# Layered configuration
2026-01-23 09:37:42 -03:00
figment = { workspace = true, features = ["toml"] }
# Rate limiting
2026-01-23 09:37:42 -03:00
governor = { workspace = true }
# RSS feed parsing
2026-01-23 09:37:42 -03:00
rss = { workspace = true }
# HTML parsing/web scraping
2026-01-23 09:37:42 -03:00
scraper = { workspace = true }
walkdir = { workspace = true }
2026-01-18 19:53:34 -03:00
# Embedded static files
2026-01-23 09:37:42 -03:00
rust-embed = { workspace = true }
mime_guess = { workspace = true }
hyper-util = { workspace = true, features = ["client-legacy"] }
http-body-util = { workspace = true }
2025-11-22 22:54:45 -03:00
[dev-dependencies]
2026-01-23 09:37:42 -03:00
mockito = { workspace = true }
tempfile = { workspace = true }
bigdecimal = { workspace = true }
2026-01-23 09:37:42 -03:00
[lints]
workspace = true