Drop image (with ravif/paste), sqlx, zitadel, and related dependencies that were causing compilation issues. Replace image processing with direct png crate usage. Update rcgen to 0.14 with new API changes. Refactor CA certificate generation to use Issuer pattern.
245 lines
7 KiB
TOML
245 lines
7 KiB
TOML
[package]
|
|
name = "botserver"
|
|
version = "6.1.0"
|
|
edition = "2021"
|
|
keywords = ["chatbot", "ai", "llm", "automation", "bot-framework"]
|
|
categories = ["web-programming", "api-bindings", "development-tools"]
|
|
authors = [
|
|
"Pragmatismo.com.br ",
|
|
"General Bots Community ",
|
|
"Alan Perdomo",
|
|
"Ana Paula Gil",
|
|
"Arenas.io",
|
|
"Atylla L",
|
|
"Christopher de Castilho",
|
|
"Dario Junior",
|
|
"David Lerner",
|
|
"Experimentation Garage",
|
|
"Flavio Andrade",
|
|
"Heraldo Almeida",
|
|
"Joao Parana",
|
|
"Jonathas C",
|
|
"J Ramos",
|
|
"Lucas Picanco",
|
|
"Marcos Velasco",
|
|
"Matheus 39x",
|
|
"Oerlabs Henrique",
|
|
"Othon Lima",
|
|
"PH Nascimento",
|
|
"Phpussente",
|
|
"Robson Dantas",
|
|
"Rodrigo Rodriguez ",
|
|
"Sarah Lourenco",
|
|
"Thi Patriota",
|
|
"Webgus",
|
|
"Zuilho Se",
|
|
]
|
|
description = "General Bots Server - Open-source bot platform by Pragmatismo.com.br"
|
|
license = "AGPL-3.0"
|
|
repository = "https://github.com/GeneralBots/BotServer"
|
|
|
|
[features]
|
|
# ===== DEFAULT FEATURE SET =====
|
|
default = ["console", "chat", "automation", "tasks", "drive", "llm", "redis-cache", "progress-bars", "directory"]
|
|
|
|
# ===== UI FEATURES =====
|
|
console = ["dep:crossterm", "dep:ratatui", "monitoring"]
|
|
|
|
# ===== CORE INTEGRATIONS =====
|
|
vectordb = ["dep:qdrant-client"]
|
|
llm = []
|
|
nvidia = []
|
|
|
|
# ===== COMMUNICATION CHANNELS =====
|
|
email = ["dep:imap", "dep:lettre", "dep:mailparse", "dep:native-tls"]
|
|
whatsapp = []
|
|
instagram = []
|
|
msteams = []
|
|
|
|
# ===== PRODUCTIVITY FEATURES =====
|
|
chat = []
|
|
drive = ["dep:aws-config", "dep:aws-sdk-s3", "dep:pdf-extract", "dep:zip", "dep:downloader", "dep:mime_guess", "dep:flate2", "dep:tar"]
|
|
tasks = ["dep:cron"]
|
|
calendar = []
|
|
meet = ["dep:livekit"]
|
|
mail = ["email"]
|
|
|
|
# ===== ENTERPRISE FEATURES =====
|
|
compliance = ["dep:csv"]
|
|
attendance = []
|
|
directory = []
|
|
weba = []
|
|
timeseries = []
|
|
|
|
# ===== OPTIONAL INFRASTRUCTURE =====
|
|
redis-cache = ["dep:redis"]
|
|
monitoring = ["dep:sysinfo"]
|
|
automation = ["dep:rhai"]
|
|
grpc = ["dep:tonic"]
|
|
progress-bars = ["dep:indicatif"]
|
|
|
|
# ===== META FEATURES (BUNDLES) =====
|
|
full = [
|
|
"console",
|
|
"vectordb", "llm", "nvidia", "timeseries",
|
|
"email", "whatsapp", "instagram", "msteams",
|
|
"chat", "drive", "tasks", "calendar", "meet", "mail",
|
|
"compliance", "attendance", "directory", "weba",
|
|
"redis-cache", "monitoring", "automation", "grpc", "progress-bars"
|
|
]
|
|
|
|
communications = ["email", "whatsapp", "instagram", "msteams", "chat", "redis-cache"]
|
|
productivity = ["chat", "drive", "tasks", "calendar", "meet", "mail", "redis-cache"]
|
|
enterprise = ["compliance", "attendance", "directory", "llm", "vectordb", "monitoring", "timeseries"]
|
|
minimal = ["chat"]
|
|
lightweight = ["chat", "drive", "tasks"]
|
|
|
|
[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"] }
|
|
diesel_migrations = "2.1.0"
|
|
dotenvy = "0.15"
|
|
env_logger = "0.11"
|
|
futures = "0.3"
|
|
futures-util = "0.3"
|
|
hex = "0.4"
|
|
hmac = "0.12.1"
|
|
hyper = { version = "0.14", features = ["full"] }
|
|
hyper-rustls = { version = "0.24", 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"
|
|
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"
|
|
askama = "0.12"
|
|
askama_axum = "0.4"
|
|
tracing-subscriber = { version = "0.3", features = ["fmt"] }
|
|
urlencoding = "2.1"
|
|
uuid = { version = "1.11", features = ["serde", "v4"] }
|
|
|
|
# === TLS/SECURITY DEPENDENCIES ===
|
|
rustls = { version = "0.21", features = ["dangerous_configuration"] }
|
|
rustls-pemfile = "1.0"
|
|
tokio-rustls = "0.24"
|
|
rcgen = { version = "0.14", features = ["pem"] }
|
|
x509-parser = "0.15"
|
|
rustls-native-certs = "0.6"
|
|
webpki-roots = "0.25"
|
|
ring = "0.17"
|
|
time = { version = "0.3", features = ["formatting", "parsing"] }
|
|
jsonwebtoken = "9.3"
|
|
tower-cookies = "0.10"
|
|
|
|
# === FEATURE-SPECIFIC DEPENDENCIES (Optional) ===
|
|
|
|
# Email Integration (email 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 }
|
|
|
|
# File Storage & Drive (drive feature)
|
|
aws-config = { version = "1.8.8", optional = true }
|
|
aws-sdk-s3 = { version = "1.109.0", features = ["behavior-version-latest"], optional = true }
|
|
pdf-extract = { version = "0.10.0", optional = true }
|
|
zip = { version = "2.2", optional = true }
|
|
downloader = { version = "0.2", optional = true }
|
|
mime_guess = { version = "2.0", 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", 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.30.0-beta.0", optional = true }
|
|
|
|
# QR Code Generation (using png directly to avoid image's ravif/paste dependency)
|
|
png = "0.18"
|
|
qrcode = { version = "0.14", default-features = false }
|
|
|
|
# Excel/Spreadsheet Support
|
|
calamine = "0.26"
|
|
rust_xlsxwriter = "0.79"
|
|
|
|
# Error handling
|
|
thiserror = "2.0"
|
|
|
|
# Caching/Sessions (redis-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"
|
|
scopeguard = "1.2.0"
|
|
|
|
[dev-dependencies]
|
|
mockito = "1.7.0"
|
|
tempfile = "3"
|
|
|
|
# === SECURITY AND CODE QUALITY CONFIGURATION ===
|
|
[lints.rust]
|
|
unused_imports = "warn"
|
|
unused_variables = "warn"
|
|
unused_mut = "warn"
|
|
unsafe_code = "deny"
|
|
missing_debug_implementations = "warn"
|
|
|
|
[lints.clippy]
|
|
all = "warn"
|
|
pedantic = "warn"
|
|
nursery = "warn"
|
|
cargo = "warn"
|
|
unwrap_used = "warn"
|
|
expect_used = "warn"
|
|
panic = "warn"
|
|
todo = "warn"
|
|
|
|
[profile.release]
|
|
lto = true
|
|
opt-level = "z"
|
|
strip = true
|
|
panic = "abort"
|
|
codegen-units = 1
|
|
overflow-checks = true
|