275 lines
No EOL
8 KiB
TOML
275 lines
No EOL
8 KiB
TOML
[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 |