c1070649fa
Register the Tauri notification plugin and request notification permission during startup. Send completion notifications for folder scans, embeddings, AI tagging, and duplicate scans, including failure counts where available.
102 lines
3.2 KiB
TOML
102 lines
3.2 KiB
TOML
[package]
|
||
name = "phokus"
|
||
version = "0.1.0"
|
||
description = "A performant image gallery application"
|
||
authors = ["JezzWTF"]
|
||
edition = "2021"
|
||
|
||
[lib]
|
||
name = "phokus_lib"
|
||
crate-type = ["staticlib", "cdylib", "rlib"]
|
||
|
||
[build-dependencies]
|
||
tauri-build = { version = "2", features = [] }
|
||
|
||
[features]
|
||
default = []
|
||
candle-cuda = ["candle-core/cuda", "candle-nn/cuda", "candle-transformers/cuda"]
|
||
|
||
[dependencies]
|
||
tauri = { version = "2", features = ["protocol-asset"] }
|
||
tauri-plugin-opener = "2"
|
||
tauri-plugin-dialog = "2"
|
||
tauri-plugin-fs = "2"
|
||
serde = { version = "1", features = ["derive"] }
|
||
serde_json = "1"
|
||
rusqlite = { version = "0.32", features = ["bundled"] }
|
||
r2d2 = "0.8"
|
||
r2d2_sqlite = "0.25"
|
||
sqlite-vec = "=0.1.9"
|
||
hnsw_rs = "0.3.4"
|
||
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "gif", "bmp", "tiff"] }
|
||
fast_image_resize = { version = "6.0.0", features = ["image"] }
|
||
walkdir = "2"
|
||
rayon = "1"
|
||
tokio = { version = "1", features = ["full"] }
|
||
chrono = { version = "0.4", features = ["serde"] }
|
||
uuid = { version = "1", features = ["v4"] }
|
||
anyhow = "1"
|
||
log = "0.4"
|
||
ffmpeg-sidecar = "2.5.0"
|
||
xxhash-rust = { version = "0.8", features = ["xxh3"] }
|
||
memmap2 = "0.9"
|
||
sysinfo = "0.38.4"
|
||
candle-core = { version = "0.10.2", features = ["cuda"] }
|
||
candle-nn = { version = "0.10.2", features = ["cuda"] }
|
||
candle-transformers = { version = "0.10.2", features = ["cuda"] }
|
||
hf-hub = { version = "0.5.0", default-features = false, features = ["ureq", "native-tls"] }
|
||
tokenizers = "0.22.1"
|
||
ort = { version = "2.0.0-rc.12", default-features = false, features = ["std", "ndarray", "download-binaries", "copy-dylibs", "load-dynamic", "directml", "api-24", "tls-native"] }
|
||
ureq = { version = "3.3.0", default-features = false, features = ["native-tls"] }
|
||
zip = { version = "4.6.1", default-features = false, features = ["deflate"] }
|
||
csv = "1"
|
||
tauri-plugin-notification = "2"
|
||
|
||
# ── Dev-mode performance ────────────────────────────────────────────────────
|
||
# opt-level=1 on the main crate keeps incremental compile short.
|
||
# Only the packages that are genuine hot-path bottlenecks in dev get opt-level=3
|
||
# (using "*" caused cargo to recheck all dependency fingerprints too aggressively,
|
||
# which caused spurious full rebuilds and linker conflicts).
|
||
[profile.dev]
|
||
opt-level = 1
|
||
|
||
# ML inference — without opt these run 20-50× slower than release
|
||
[profile.dev.package.candle-core]
|
||
opt-level = 3
|
||
[profile.dev.package.candle-nn]
|
||
opt-level = 3
|
||
[profile.dev.package.candle-transformers]
|
||
opt-level = 3
|
||
|
||
# ONNX runtime (WD tagger)
|
||
[profile.dev.package.ort]
|
||
opt-level = 3
|
||
[profile.dev.package.ort-sys]
|
||
opt-level = 3
|
||
|
||
# Image decode/resize workers
|
||
[profile.dev.package.image]
|
||
opt-level = 3
|
||
[profile.dev.package.fast_image_resize]
|
||
opt-level = 3
|
||
|
||
# Parallel work scheduler
|
||
[profile.dev.package.rayon]
|
||
opt-level = 3
|
||
[profile.dev.package.rayon-core]
|
||
opt-level = 3
|
||
|
||
# Tokenisation (embedding model pre-processing)
|
||
[profile.dev.package.tokenizers]
|
||
opt-level = 3
|
||
|
||
# Hashing (duplicate finder)
|
||
[profile.dev.package.xxhash-rust]
|
||
opt-level = 3
|
||
|
||
# SQLite (frequent db calls in workers)
|
||
[profile.dev.package.rusqlite]
|
||
opt-level = 3
|
||
[profile.dev.package.libsqlite3-sys]
|
||
opt-level = 3
|