[package] name = "botserver" version = "6.1.0" edition = "2021" # ... [authors, description, license, repository sections remain the same] [dependencies.botlib] path = "../botlib" features = ["database", "i18n"] [features] # ===== DEFAULT FEATURE SET ===== default = ["chat", "drive", "tasks", "automation"] # ===== COMMUNICATION APPS ===== chat = [] people = [] mail = ["email", "imap", "lettre", "mailparse", "native-tls"] meet = ["dep:livekit"] social = [] whatsapp = [] telegram = [] instagram = [] msteams = [] communications = ["chat", "people", "mail", "meet", "social", "whatsapp", "telegram", "instagram", "msteams", "cache"] # ===== PRODUCTIVITY APPS ===== calendar = [] tasks = ["dep:cron"] project = [] goals = [] workspace = [] productivity = ["calendar", "tasks", "project", "goals", "workspace", "cache"] # ===== DOCUMENT APPS ===== paper = ["docx-rs", "ooxmlsdk", "dep:pdf-extract"] docs = ["docx-rs", "ooxmlsdk"] sheet = ["umya-spreadsheet", "calamine", "rust_xlsxwriter", "spreadsheet-ods"] slides = ["ooxmlsdk"] drive = ["dep:aws-config", "dep:aws-sdk-s3", "dep:pdf-extract", "dep:zip", "dep:downloader", "dep:flate2", "dep:tar"] 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"] # ===== ANALYTICS APPS ===== analytics = [] dashboards = [] monitoring = ["dep:sysinfo"] analytics_suite = ["analytics", "dashboards", "monitoring"] # ===== DEVELOPMENT TOOLS ===== designer = [] editor = [] automation = ["dep:rhai", "llm"] development = ["designer", "editor", "automation"] # ===== ADMIN APPS ===== attendant = [] security = [] settings = [] admin = ["attendant", "security", "settings"] # ===== CORE TECHNOLOGIES ===== llm = [] vectordb = ["dep:qdrant-client"] nvidia = [] email = [] cache = ["dep:redis"] compliance = ["dep:csv"] timeseries = [] weba = [] directory = [] progress-bars = ["dep:indicatif"] grpc = ["dep:tonic"] jemalloc = ["dep:tikv-jemallocator", "dep:tikv-jemalloc-ctl"] console = ["dep:crossterm", "dep:ratatui", "monitoring"] # ===== BUNDLE FEATURES ===== full = [ # Communication "chat", "people", "mail", "meet", "social", "whatsapp", "telegram", "instagram", "msteams", # Productivity "calendar", "tasks", "project", "goals", "workspace", # Documents "paper", "docs", "sheet", "slides", "drive", # Media "video", "player", "canvas", # Learning "learn", "research", "sources", # Analytics "analytics", "dashboards", "monitoring", # Development "designer", "editor", "automation", # Admin "attendant", "security", "settings", # Core tech "llm", "vectordb", "nvidia", "cache", "compliance", "timeseries", "weba", "directory", "progress-bars", "grpc", "jemalloc", "console" ] minimal = ["chat"] lightweight = ["chat", "drive", "tasks", "people"] [dependencies] # === CORE RUNTIME (Always Required) === aes-gcm = "0.10" anyhow = "1.0" argon2 = "0.5" async-lock = "2.8.0" async-stream = "0.3" async-trait = "0.1" axum = { version = "0.7.5", features = ["ws", "multipart", "macros"] } axum-server = { version = "0.7", features = ["tls-rustls"] } base64 = "0.22" bytes = "1.8" chrono = { version = "0.4", features = ["serde"] } color-eyre = "0.6.5" diesel = { version = "2.1", features = ["postgres", "uuid", "chrono", "serde_json", "r2d2", "numeric", "128-column-tables"] } bigdecimal = { version = "0.4", features = ["serde"] } diesel_migrations = "2.1.0" dirs = "5.0" dotenvy = "0.15" env_logger = "0.11" futures = "0.3" futures-util = "0.3" tokio-util = { version = "0.7", features = ["io", "compat"] } hex = "0.4" hmac = "0.12.1" hyper = { version = "1.4", features = ["full"] } hyper-rustls = { version = "0.27", features = ["http2"] } log = "0.4" num-format = "0.4" once_cell = "1.18.0" rand = "0.9.2" regex = "1.11" reqwest = { version = "0.12", features = ["json", "stream", "multipart", "rustls-tls", "rustls-tls-native-roots"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.8" sha2 = "0.10.9" sha1 = "0.10.6" tokio = { version = "1.41", features = ["full"] } tokio-stream = "0.1" tower = "0.4" tower-http = { version = "0.5", features = ["cors", "fs", "trace"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["fmt"] } urlencoding = "2.1" uuid = { version = "1.11", features = ["serde", "v4", "v5"] } # === TLS/SECURITY DEPENDENCIES === rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] } tokio-rustls = "0.26" rcgen = { version = "0.14", features = ["pem"] } x509-parser = "0.15" rustls-native-certs = "0.8" webpki-roots = "0.25" ring = "0.17" ciborium = "0.2" time = { version = "0.3", features = ["formatting", "parsing"] } jsonwebtoken = "9.3" tower-cookies = "0.10" # === APP-SPECIFIC DEPENDENCIES === # Email Integration (mail feature) imap = { version = "3.0.0-alpha.15", optional = true } lettre = { version = "0.11", features = ["smtp-transport", "builder", "tokio1", "tokio1-native-tls"], optional = true } mailparse = { version = "0.15", optional = true } native-tls = { version = "0.2", optional = true } # Video Meetings (meet feature) livekit = { version = "0.7", optional = true } # Vector Database (vectordb feature) qdrant-client = { version = "1.12", optional = true } # Document Processing (paper, docs, sheet, slides features) docx-rs = { version = "0.4", optional = true } ooxmlsdk = { version = "0.3", features = ["docx", "pptx", "parts", "office2021"], optional = true } umya-spreadsheet = { version = "2.3", optional = true } calamine = { version = "0.26", optional = true } rust_xlsxwriter = { version = "0.79", optional = true } spreadsheet-ods = { version = "1.0", optional = true } # File Storage & Drive (drive feature) aws-config = { version = "1.8.8", features = ["behavior-version-latest"], optional = true } aws-sdk-s3 = { version = "1.109.0", features = ["behavior-version-latest"], optional = true } pdf-extract = { version = "0.10.0", optional = true } quick-xml = { version = "0.37", features = ["serialize"] } zip = { version = "2.2", optional = true } downloader = { version = "0.2", optional = true } flate2 = { version = "1.0", optional = true } tar = { version = "0.4", optional = true } # Task Management (tasks feature) cron = { version = "0.15.0", optional = true } # Automation & Scripting (automation feature) rhai = { git = "https://github.com/therealprof/rhai.git", branch = "features/use-web-time", features = ["sync"], optional = true } # 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 } # QR Code Generation png = "0.18" qrcode = { version = "0.14", default-features = false } # Error handling thiserror = "2.0" # Caching/Sessions (cache feature) redis = { version = "0.27", features = ["tokio-comp"], optional = true } # System Monitoring (monitoring feature) sysinfo = { version = "0.37.2", optional = true } # Networking/gRPC (grpc feature) tonic = { version = "0.14.2", features = ["transport"], optional = true } # 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 } tikv-jemalloc-ctl = { version = "0.6", features = ["stats"], optional = true } scopeguard = "1.2.0" # Vault secrets management vaultrs = "0.7" # Calendar standards (RFC 5545) icalendar = "0.17" # Layered configuration figment = { version = "0.10", features = ["toml", "env", "json"] } # Rate limiting governor = "0.10" # RSS feed parsing rss = "2.0" # HTML parsing/web scraping scraper = "0.25" walkdir = "2.5.0" # Embedded static files (UI fallback when no external folder) rust-embed = "8.5" mime_guess = "2.0" hyper-util = { version = "0.1.19", features = ["client-legacy", "tokio"] } http-body-util = "0.1.3" [dev-dependencies] mockito = "1.7.0" tempfile = "3" [lints] workspace = true