[package] name = "botserver" version = "6.1.0" edition = "2021" resolver = "2" [dependencies.botlib] workspace = true features = ["database", "i18n"] [features] # ===== DEFAULT ===== default = ["chat", "automation", "drive", "tasks", "cache", "directory"] # ===== CORE INFRASTRUCTURE (Always needed) ===== automation = ["dep:rhai", "dep:cron"] drive = ["dep:aws-config", "dep:aws-sdk-s3", "dep:aws-smithy-async", "dep:pdf-extract"] cache = ["dep:redis"] directory = [] # ===== APPS (Flat list - no dependencies between apps) ===== # Communication chat = [] people = [] mail = ["dep:lettre", "dep:mailparse", "dep:imap", "dep:native-tls"] meet = ["dep:livekit"] social = [] whatsapp = [] telegram = [] instagram = [] msteams = [] # Productivity calendar = [] tasks = ["dep:cron"] project = ["quick-xml"] goals = [] workspaces = [] tickets = [] billing = [] # Documents docs = ["docx-rs", "ooxmlsdk"] sheet = ["calamine", "spreadsheet-ods"] slides = ["ooxmlsdk"] paper = [] # Media video = [] player = [] canvas = [] # Learning learn = [] research = [] sources = [] # Analytics analytics = [] dashboards = [] monitoring = ["dep:sysinfo"] # Development designer = [] editor = [] # Admin attendant = [] security = [] settings = [] # Core Tech llm = [] vectordb = ["dep:qdrant-client"] nvidia = [] compliance = ["dep:csv"] timeseries = [] weba = [] progress-bars = ["dep:indicatif"] grpc = [] jemalloc = ["dep:tikv-jemallocator", "dep:tikv-jemalloc-ctl"] console = ["dep:crossterm", "dep:ratatui"] # ===== BUNDLES (Optional - for convenience) ===== minimal = ["chat", "automation", "drive", "cache"] lightweight = ["chat", "automation", "drive", "cache", "tasks", "people"] full = ["chat", "people", "mail", "tasks", "calendar", "drive", "docs", "llm", "cache", "compliance"] [dependencies] diesel_migrations = { workspace = true } bigdecimal = { workspace = true } # === CORE RUNTIME === 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"] } 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"] } # === TLS/SECURITY DEPENDENCIES === 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 } # === APP-SPECIFIC DEPENDENCIES === # mail Integration (mail feature) imap = { workspace = true, optional = true } lettre = { workspace = true, optional = true } mailparse = { workspace = true, optional = true } native-tls = { workspace = true, optional = true } # Video Meetings (meet feature) livekit = { workspace = true, optional = true } # Vector Database (vectordb feature) qdrant-client = { workspace = true, optional = true } # Document Processing docx-rs = { workspace = true, optional = true } ooxmlsdk = { workspace = true, optional = true } calamine = { workspace = true, optional = true } spreadsheet-ods = { workspace = true, optional = true } # File Storage & Drive (drive feature) 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 } # Task Management (tasks feature) cron = { workspace = true, optional = true } # Automation & Scripting (automation feature) rhai = { workspace = true, optional = true } # Compliance & Reporting (compliance feature) csv = { workspace = true, optional = true } # Console/TUI (console feature) crossterm = { workspace = true, optional = true } ratatui = { workspace = true, optional = true } # QR Code Generation png = { workspace = true } qrcode = { workspace = true } # Error handling thiserror = { workspace = true } # Caching/Sessions (cache feature) redis = { workspace = true, features = ["tokio-comp"], optional = true } # System Monitoring (monitoring feature) sysinfo = { workspace = true, optional = true } # Networking/gRPC (grpc feature) tonic = { workspace = true, features = ["transport"], optional = true } # UI Enhancement (progress-bars feature) indicatif = { workspace = true, optional = true } smartstring = { workspace = true } # Memory allocator (jemalloc feature) tikv-jemallocator = { workspace = true, optional = true } tikv-jemalloc-ctl = { workspace = true, optional = true } scopeguard = { workspace = true } # Vault secrets management vaultrs = { workspace = true } # Calendar standards (RFC 5545) icalendar = { workspace = true } # Layered configuration figment = { workspace = true, features = ["toml"] } # Rate limiting governor = { workspace = true } # RSS feed parsing rss = { workspace = true } # HTML parsing/web scraping scraper = { workspace = true } walkdir = { workspace = true } # Embedded static files rust-embed = { workspace = true } mime_guess = { workspace = true } hyper-util = { workspace = true, features = ["client-legacy"] } http-body-util = { workspace = true } [dev-dependencies] mockito = { workspace = true } tempfile = { workspace = true } bigdecimal = { workspace = true } [lints] workspace = true