[package] name = "imagod-web" version = "0.2.2" edition = "2021" description = "Imago Daemon + Dashboard — Service de capture automatique de screenshots + Dashboard web embarqué" authors = ["Bruno Charest "] license = "MIT" repository = "https://git.dracodev.net/Projets/imagod-web" keywords = ["screenshot", "clipboard", "imago", "dashboard", "ai"] categories = ["command-line-utilities", "web-programming"] [dependencies] # CLI clap = { version = "4", features = ["derive", "env"] } # Async runtime tokio = { version = "1", features = ["full"] } # HTTP Client (API Imago) — rustls pour éviter OpenSSL reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "stream", "rustls-tls", "blocking"] } # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # Config toml = "0.8" # Hashing sha2 = "0.10" hex = "0.4" # SQLite rusqlite = { version = "0.32", features = ["bundled"] } # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } # Error handling anyhow = "1" thiserror = "2" # CLI utilities open = "5" # Web server (axum + tower) axum = { version = "0.8", features = ["ws", "multipart"] } tower = "0.5" tower-http = { version = "0.6", features = ["cors", "fs", "trace"] } # Frontend embedding rust-embed = "8" # WebSocket broadcast tokio-stream = "0.1" futures-util = "0.3" dashmap = "6" # Time formatting chrono = { version = "0.4", features = ["serde"] } # Image encoding (PNG conversion pour clipboard → upload) image = { version = "0.25", default-features = false, features = ["png"] } # Platform-specific — Windows [target.'cfg(windows)'.dependencies] # Clipboard access arboard = "3" # System tray tray-icon = "0.19" # Find executables in PATH (NSSM discovery) which = "7" # Windows API (pour titre fenêtre active) windows-sys = { version = "0.59", features = [ "Win32_UI_WindowsAndMessaging", "Win32_Foundation", "Win32_System_Threading", "Win32_UI_TextServices", ] } # Platform-specific — Linux [target.'cfg(unix)'.dependencies] # Notify pour watcher filesystem (Linux) notify = { version = "7", features = ["macos_kqueue"] } # Signal handling (PID file, process checks) libc = "0.2" [profile.release] opt-level = "z" # Optimize for size lto = true # Link-time optimization # strip = true # Strip symbols codegen-units = 1 # Better optimization