[package] name = "whispassist" version = "0.0.0" description = "Privacy-first, fully local Windows meeting assistant" authors = ["WhispAssist contributors"] license = "MIT OR Apache-2.0" edition = "2021" rust-version = "1.77" # NOTE: versions are indicative. Pin + verify at implementation time # (see docs/07-research-findings.md "Open items"). [lib] name = "whispassist_lib" crate-type = ["staticlib", "cdylib", "rlib"] [build-dependencies] tauri-build = { version = "2", features = [] } [dependencies] tauri = { version = "2", features = ["tray-icon", "image-png"] } serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "1" async-trait = "0.1" tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "fs"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } uuid = { version = "1", features = ["v4"] } # storage sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "migrate"] } # llm + sync (HTTP/WebDAV) reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] } futures-util = "0.3" sha2 = "0.10" # skip-if-unchanged hashing (sync) keyring = { version = "3", optional = true } # OS credential store (sync + AI creds) rmcp = { version = "0.16", optional = true, features = ["server"] } # MCP server (ADR-0011) # audio / transcription / diarization / calendar are integrated per-phase and are # feature-gated so the CPU-only build always compiles (NFR-MNT-4). hound = { version = "3", optional = true } # WAV I/O (Phase 1) whisper-rs = { version = "0.16", optional = true } # whisper.cpp bindings (Phase 1) sherpa-rs = { version = "0.6", optional = true, default-features = false, features = ["download-binaries"] } # sherpa-onnx bindings (Phase 4, ADR-0005) tauri-plugin-dialog = "2" # native Save/choose-folder (Phase 2 export) [target.'cfg(windows)'.dependencies] windows = { version = "0.58", features = [ "Win32_Media_Audio", # WASAPI (Phase 1) "Win32_Graphics_Dxgi", # GPU enumeration (Phase 3) "Win32_System_Com", ] } wasapi = { version = "0.15", optional = true } # Phase 1 [features] default = ["audio", "cpu-transcription", "diarization", "pst"] # Phase 1 audio = ["dep:wasapi", "dep:hound"] cpu-transcription = ["dep:whisper-rs"] # whisper-rs CPU build # Phase 3 acceleration (built on capable CI runners; never required) cuda = ["whisper-rs?/cuda"] # whisper.cpp CUDA vulkan = ["whisper-rs?/vulkan"] # whisper.cpp Vulkan directml = [] # ort + DirectML NPU path (T3.4, not yet implemented) # Phase 4 / 6 (added when integrated) diarization = ["dep:sherpa-rs"] # sherpa-onnx pst = [] # shells out to readpst (libpst) — no crate dep, see ADR-0008 update # Phase 9 sync = ["dep:keyring"] # remote upload (WebDAV + OAuth providers) # Phase 10 mcp = ["dep:rmcp", "dep:keyring"] # WhispAssist as an MCP server + hosted-AI creds [profile.release] opt-level = "z" # optimize for size — keep the binary small (NFR-RES-1) lto = true codegen-units = 1 strip = true panic = "abort"