[package] name = "kestrove-desktop" version = "1.1.0" edition = "2021" rust-version = "1.82" license = "Apache-2.0" publish = false # Shared by the app, the native-messaging host and the integration tests. [lib] name = "kestrove_desktop" path = "src/lib.rs" [[bin]] name = "kestrove-desktop" path = "src/main.rs" # Native messaging host: started by the browser, relays to the running app (docs/05). Shared with the macOS # app, so the source lives in kestrove-core (crates/kv-nmh). [[bin]] name = "kestrove-nmh" path = "../../kestrove-core/crates/kv-nmh/src/main.rs" [build-dependencies] tauri-build = { version = "2", features = [] } [dependencies] # Repos are checked out side by side (see ../../README.md). kv-ffi = { path = "../../kestrove-core/crates/kv-ffi", features = ["browser-bridge"] } kv-ipc = { path = "../../kestrove-core/crates/kv-ipc" } tauri = { version = "2", features = ["tray-icon"] } serde = { version = "1", features = ["derive"] } serde_json = "1" arboard = "3" sha2 = "0.10" getrandom = "0.2" base64 = "0.22" uuid = { version = "1", features = ["v4"] } url = "2" zeroize = "1" # Device key (docs/03 "Device keys"): P-256 software key where no hardware key is available. p256 = { version = "0.13", features = ["ecdsa"] } # Onboarding (docs/10): render QR codes locally, read the Emergency Kit QR from an image or a PDF. qrcode = { version = "0.14", default-features = false, features = ["svg"] } rqrr = { version = "0.11", default-features = false } image = { version = "0.25", default-features = false, features = ["png", "jpeg"] } hayro = { version = "0.8", default-features = false } tokio = { version = "1", features = ["time", "sync", "macros"] } [target.'cfg(unix)'.dependencies] libc = "0.2" # macOS (dev) keychain / Linux Secret Service for the device key. Windows uses CNG (TPM) or DPAPI instead. [target.'cfg(not(windows))'.dependencies] keyring = "4" [target.'cfg(windows)'.dependencies] windows-sys = { version = "0.61", features = [ "Win32_Security_Cryptography", "Win32_Foundation", "Win32_Graphics_Dwm", "Win32_Security", "Win32_Security_Authorization", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Pipes", "Win32_System_Threading", "Win32_System_StationsAndDesktops", "Win32_System_SystemInformation", "Win32_UI_Input_KeyboardAndMouse", ] } [target.'cfg(target_os = "macos")'.dependencies] core-foundation = "0.10" [dev-dependencies] tempfile = "3" kv-sync = { path = "../../kestrove-core/crates/kv-sync", features = ["test-server"] } tokio = { version = "1", features = ["rt-multi-thread", "macros"] } [profile.release] lto = true codegen-units = 1 panic = "abort" strip = true