268 lines
7 KiB
TOML
268 lines
7 KiB
TOML
|
|
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"botapp",
|
|
"botdevice",
|
|
"botlib",
|
|
"botserver",
|
|
"bottest",
|
|
"botui",
|
|
]
|
|
|
|
[workspace.lints.rust]
|
|
|
|
[workspace.lints.clippy]
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# WORKSPACE DEPENDENCIES - Single source of truth for all member crates
|
|
# Member crates reference these with: dependency = { workspace = true }
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
[workspace.dependencies]
|
|
# ─── INTERNAL CRATES ───
|
|
botlib = { path = "botlib" }
|
|
|
|
# ─── CORE / ERROR HANDLING ───
|
|
anyhow = "1.0"
|
|
thiserror = "2.0"
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
color-eyre = "0.6.5"
|
|
|
|
# ─── ASYNC RUNTIME ───
|
|
tokio = { version = "1.41", default-features = false }
|
|
tokio-stream = "0.1"
|
|
tokio-util = { version = "0.7", default-features = false }
|
|
tokio-rustls = "0.26"
|
|
tokio-test = "0.4"
|
|
tokio-tungstenite = { version = "0.21", default-features = false }
|
|
async-trait = "0.1"
|
|
async-lock = "2.8.0"
|
|
async-stream = "0.3"
|
|
futures = "0.3"
|
|
futures-util = { version = "0.3", default-features = false }
|
|
scopeguard = "1.2.0"
|
|
|
|
# ─── SERIALIZATION ───
|
|
serde = { version = "1.0", default-features = false }
|
|
serde_json = "1.0"
|
|
toml = "0.8"
|
|
ciborium = "0.2"
|
|
|
|
# ─── DATE / TIME ───
|
|
chrono = { version = "0.4", default-features = false }
|
|
time = { version = "0.3", default-features = false }
|
|
cron = "0.15.0"
|
|
|
|
# ─── UUID ───
|
|
uuid = { version = "1.11", default-features = false }
|
|
|
|
# ─── WEB FRAMEWORK ───
|
|
axum = { version = "0.7.5", features = ["ws", "multipart", "macros"] }
|
|
axum-server = { version = "0.8", features = ["tls-rustls"] }
|
|
tower = "0.4"
|
|
tower-http = { version = "0.5", default-features = false }
|
|
tower-cookies = "0.10"
|
|
hyper = { version = "1.4", default-features = false }
|
|
hyper-rustls = { version = "0.27", default-features = false }
|
|
hyper-util = { version = "0.1.19", default-features = false }
|
|
http-body-util = "0.1.3"
|
|
|
|
# ─── HTTP CLIENT ───
|
|
reqwest = { version = "0.12", default-features = false }
|
|
|
|
# ─── DATABASE ───
|
|
diesel = { version = "2.1" }
|
|
diesel_migrations = "2.1"
|
|
|
|
# ─── CACHING ───
|
|
redis = { version = "0.27", default-features = false }
|
|
|
|
# ─── SECURITY / CRYPTO ───
|
|
jsonwebtoken = "9.3"
|
|
base64 = "0.22"
|
|
aes-gcm = "0.10"
|
|
argon2 = "0.5"
|
|
hmac = "0.12.1"
|
|
sha2 = "0.10.9"
|
|
sha1 = "0.10.6"
|
|
hex = "0.4"
|
|
rand = "0.9.2"
|
|
ring = "0.17"
|
|
|
|
# ─── TLS / CERTIFICATES ───
|
|
rustls = { version = "0.23", default-features = false }
|
|
rcgen = { version = "0.14", default-features = false }
|
|
x509-parser = "0.15"
|
|
rustls-native-certs = "0.8"
|
|
webpki-roots = "0.25"
|
|
native-tls = "0.2"
|
|
|
|
# ─── REGEX / TEXT ───
|
|
regex = "1.11"
|
|
smartstring = "1.0.1"
|
|
urlencoding = "2.1"
|
|
url = "2.5"
|
|
|
|
# ─── FILESYSTEM ───
|
|
dirs = "5.0"
|
|
tempfile = "3"
|
|
walkdir = "2.5.0"
|
|
|
|
# ─── COMPRESSION / ARCHIVES ───
|
|
flate2 = "1.0"
|
|
zip = "2.2"
|
|
tar = "0.4"
|
|
|
|
# ─── DOCUMENT PROCESSING ───
|
|
docx-rs = "0.4"
|
|
ooxmlsdk = { version = "0.3", default-features = false }
|
|
calamine = "0.26"
|
|
spreadsheet-ods = "1.0"
|
|
pdf-extract = "0.10.0"
|
|
quick-xml = { version = "0.37", features = ["serialize"] }
|
|
rust_xlsxwriter = "0.77"
|
|
umya-spreadsheet = "2.1"
|
|
|
|
# ─── IMAGE / MEDIA ───
|
|
png = "0.18"
|
|
qrcode = { version = "0.14", default-features = false }
|
|
|
|
# ─── EMAIL ───
|
|
imap = "3.0.0-alpha.15"
|
|
lettre = { version = "0.11", features = ["smtp-transport", "builder"] }
|
|
mailparse = "0.15"
|
|
|
|
# ─── CONFIGURATION ───
|
|
dotenvy = "0.15"
|
|
figment = { version = "0.10", default-features = false }
|
|
once_cell = "1.18.0"
|
|
|
|
# ─── TRACING / LOGGING ───
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", default-features = false }
|
|
|
|
# ─── NUMERIC ───
|
|
num-format = "0.4"
|
|
bigdecimal = { version = "0.4", features = ["serde"] }
|
|
|
|
# ─── UTILITIES ───
|
|
bytes = "1.8"
|
|
|
|
# ─── CLOUD / AWS ───
|
|
aws-config = { version = "1.8.8", default-features = false }
|
|
aws-sdk-s3 = { version = "1.120", default-features = false }
|
|
aws-smithy-async = { version = "1.2", features = ["rt-tokio"] }
|
|
|
|
# ─── SCRIPTING ───
|
|
rhai = { version = "1.23", features = ["sync"] }
|
|
|
|
# ─── VECTOR DB ───
|
|
qdrant-client = "1.16"
|
|
|
|
# ─── VIDEO / MEETINGS ───
|
|
livekit = "0.7"
|
|
|
|
# ─── SYSTEM MONITORING ───
|
|
sysinfo = "0.37.2"
|
|
|
|
# ─── CONSOLE / TUI ───
|
|
crossterm = "0.29.0"
|
|
ratatui = "0.30"
|
|
indicatif = "0.18.0"
|
|
|
|
# ─── MEMORY ALLOCATOR ───
|
|
tikv-jemallocator = "0.6"
|
|
tikv-jemalloc-ctl = { version = "0.6", default-features = false }
|
|
|
|
# ─── SECRETS / VAULT ───
|
|
vaultrs = "0.7"
|
|
|
|
# ─── CALENDAR / RSS ───
|
|
icalendar = "0.17"
|
|
rss = "2.0"
|
|
|
|
# ─── WEB SCRAPING ───
|
|
scraper = "0.25"
|
|
|
|
# ─── RATE LIMITING ───
|
|
governor = "0.10"
|
|
|
|
# ─── CSV ───
|
|
csv = "1.3"
|
|
|
|
# ─── GRPC ───
|
|
tonic = { version = "0.14.2", default-features = false }
|
|
|
|
# ─── STATIC FILES ───
|
|
rust-embed = "8.5"
|
|
mime_guess = "2.0"
|
|
|
|
# ─── TAURI (Desktop/Mobile) ───
|
|
tauri = { version = "2", features = ["unstable"] }
|
|
tauri-build = "2"
|
|
tauri-plugin-dialog = "2"
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-notification = "2"
|
|
tauri-plugin-http = "2"
|
|
tauri-plugin-geolocation = "2"
|
|
|
|
# ─── TESTING ───
|
|
mockito = "1.7.0"
|
|
wiremock = "0.6"
|
|
cookie = "0.18"
|
|
chromiumoxide = { version = "0.7", features = ["tokio-runtime"], default-features = false }
|
|
pretty_assertions = "1.4"
|
|
insta = { version = "1.40", features = ["json", "yaml"] }
|
|
|
|
# ─── PROCESS CONTROL ───
|
|
nix = { version = "0.29", features = ["signal", "process"] }
|
|
which = "7"
|
|
|
|
# ─── ANDROID ───
|
|
android_logger = "0.14"
|
|
|
|
# ─── VALIDATOR ───
|
|
validator = { version = "0.20", features = ["derive"] }
|
|
|
|
# ─── MISC ───
|
|
webbrowser = "0.8"
|
|
hostname = "0.4"
|
|
local-ip-address = "0.6.5"
|
|
image = "0.25"
|
|
libc = "0.2"
|
|
|
|
trayicon = "0.2"
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# PROFILES
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
[profile.release]
|
|
lto = true
|
|
opt-level = "z"
|
|
strip = true
|
|
panic = "abort"
|
|
codegen-units = 8
|
|
overflow-checks = true
|
|
|
|
[profile.ci]
|
|
inherits = "release"
|
|
lto = false
|
|
codegen-units = 8
|
|
debug = false
|
|
|
|
[profile.low-memory]
|
|
inherits = "release"
|
|
lto = "thin"
|
|
codegen-units = 16
|
|
debug = false
|
|
incremental = false
|
|
opt-level = "s"
|
|
|
|
[profile.dev]
|
|
debug = 1
|
|
incremental = true
|
|
codegen-units = 32
|
|
opt-level = 0
|