diff --git a/Cargo.toml b/Cargo.toml index 772d96cfe..4082a7fae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" resolver = "2" [dependencies.botlib] -path = "../botlib" +workspace = true features = ["database", "i18n"] [features] @@ -99,160 +99,163 @@ minimal = ["chat"] lightweight = ["chat", "drive", "tasks", "people"] [dependencies] -diesel_migrations = "2.1" -bigdecimal = { version = "0.4", features = ["serde"] } +diesel_migrations = { workspace = true } +bigdecimal = { workspace = true } + # === CORE RUNTIME === -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", default-features = false, features = ["clock", "std"] } -color-eyre = "0.6.5" -diesel = { version = "2.1", features = ["postgres", "uuid", "chrono", "serde_json", "r2d2", "numeric"] } -dirs = "5.0" -dotenvy = "0.15" -env_logger = "0.11" -futures = "0.3" -futures-util = { version = "0.3", default-features = false } -tokio-util = { version = "0.7", default-features = false, features = ["codec"] } -hex = "0.4" -hmac = "0.12.1" -hyper = { version = "1.4", default-features = false, features = ["client", "server", "http1", "http2"] } -hyper-rustls = { version = "0.27", default-features = false, 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", default-features = false, features = ["rustls-tls", "multipart", "stream", "json"] } -serde = { version = "1.0", default-features = false, features = ["derive", "std"] } -serde_json = "1.0" -toml = "0.8" -sha2 = "0.10.9" -sha1 = "0.10.6" -tokio = { version = "1.41", default-features = false, features = ["full", "process", "process"] } -tokio-stream = "0.1" -tower = "0.4" -tower-http = { version = "0.5", default-features = false, features = ["cors", "fs", "trace"] } -tracing = "0.1" -tracing-subscriber = { version = "0.3", default-features = false } -urlencoding = "2.1" -uuid = { version = "1.11", default-features = false, features = ["v4", "v5"] } +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"] } +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 = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] } -tokio-rustls = "0.26" -rcgen = { version = "0.14", default-features = false, features = ["crypto", "ring", "pem"] } # Added ring and pem features -x509-parser = "0.15" -rustls-native-certs = "0.8" -webpki-roots = "0.25" -ring = "0.17" -ciborium = "0.2" -time = { version = "0.3", default-features = false, features = ["formatting"] } -jsonwebtoken = "9.3" -tower-cookies = "0.10" +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 = { version = "3.0.0-alpha.15", optional = true } -lettre = { version = "0.11", features = ["smtp-transport", "builder"], optional = true } -mailparse = { version = "0.15", optional = true } -native-tls = { version = "0.2", optional = true } +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 = { version = "0.7", optional = true } +livekit = { workspace = true, optional = true } # Vector Database (vectordb feature) -qdrant-client = { version = "1.12", optional = true } +qdrant-client = { workspace = true, optional = true } # Document Processing -docx-rs = { version = "0.4", optional = true } -ooxmlsdk = { version = "0.3", default-features = false, optional = true } -calamine = { version = "0.26", optional = true } -spreadsheet-ods = { version = "1.0", optional = true } +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 = { version = "1.8.8", default-features = false, features = ["behavior-version-latest", "rt-tokio", "rustls"], optional = true } -aws-sdk-s3 = { version = "1.109.0", default-features = false, features = ["rt-tokio", "rustls"], optional = true } -aws-smithy-async = { version = "1.2", features = ["rt-tokio"], optional = true } -pdf-extract = { version = "0.10.0", optional = true } -quick-xml = { version = "0.37", optional=true, features = ["serialize"] } -flate2 = { version = "1.0", optional = false } -zip = { version = "2.2", optional = false } -tar = { version = "0.4", optional = false } +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 = { version = "0.15.0", optional = true } +cron = { workspace = true, optional = true } # Automation & Scripting (automation feature) -rhai = { version = "1.23", features = ["sync"], optional = true } +rhai = { workspace = true, optional = true } # Compliance & Reporting (compliance feature) -csv = { version = "1.3", optional = true } +csv = { workspace = true, optional = true } # Console/TUI (console feature) -crossterm = { version = "0.29.0", optional = true } -ratatui = { version = "0.29", optional = true } +crossterm = { workspace = true, optional = true } +ratatui = { workspace = true, optional = true } # QR Code Generation -png = "0.18" -qrcode = { version = "0.14", default-features = false } +png = { workspace = true } +qrcode = { workspace = true } # Error handling -thiserror = "2.0" +thiserror = { workspace = true } # Caching/Sessions (cache feature) -redis = { version = "0.27", default-features = false, features = ["tokio-comp"], optional = true } +redis = { workspace = true, features = ["tokio-comp"], optional = true } # System Monitoring (monitoring feature) -sysinfo = { version = "0.37.2", optional = true } +sysinfo = { workspace = true, optional = true } # Networking/gRPC (grpc feature) -tonic = { version = "0.14.2", default-features = false, features = ["transport"], optional = true } +tonic = { workspace = true, features = ["transport"], optional = true } # UI Enhancement (progress-bars feature) -indicatif = { version = "0.18.0", optional = true } -smartstring = "1.0.1" +indicatif = { workspace = true, optional = true } +smartstring = { workspace = true } # Memory allocator (jemalloc feature) -tikv-jemallocator = { version = "0.6", optional = true } -tikv-jemalloc-ctl = { version = "0.6", default-features = false, optional = true } -scopeguard = "1.2.0" +tikv-jemallocator = { workspace = true, optional = true } +tikv-jemalloc-ctl = { workspace = true, optional = true } +scopeguard = { workspace = true } # Vault secrets management -vaultrs = "0.7" +vaultrs = { workspace = true } # Calendar standards (RFC 5545) -icalendar = "0.17" +icalendar = { workspace = true } # Layered configuration -figment = { version = "0.10", default-features = false, features = ["toml"] } +figment = { workspace = true, features = ["toml"] } # Rate limiting -governor = "0.10" +governor = { workspace = true } # RSS feed parsing -rss = "2.0" +rss = { workspace = true } # HTML parsing/web scraping -scraper = "0.25" -walkdir = "2.5.0" +scraper = { workspace = true } +walkdir = { workspace = true } # Embedded static files -rust-embed = "8.5" -mime_guess = "2.0" -hyper-util = { version = "0.1.19", default-features = false, features = ["client-legacy"] } -http-body-util = "0.1.3" +rust-embed = { workspace = true } +mime_guess = { workspace = true } +hyper-util = { workspace = true, features = ["client-legacy"] } +http-body-util = { workspace = true } [dev-dependencies] -mockito = "1.7.0" -tempfile = "3" +mockito = { workspace = true } +tempfile = { workspace = true } +bigdecimal = { workspace = true } -bigdecimal = { version = "0.4", features = ["serde"] } +[lints] +workspace = true