[package] name = "topicbench" version = "1.1.1" edition = "2021" rust-version = "1.80" description = "TopicBench — multi-broker MQTT explorer and monitor" license = "MIT OR Apache-2.0" readme = "README.md" [dependencies] # ArtCraft Crafting Apps (PhotoCraft/DesignCraft/FilmCraft) use egui; eframe is the official shell. # 0.31.x matches Rust >= 1.80 (image has 1.83). Bump toward latest when rustup can update. eframe = { version = "0.31", default-features = true, features = ["wayland", "x11"] } # Sync MQTT client: run EventLoop on a worker thread; feed UI via channels (fits egui). # websocket = MQTT over WS/WSS; use-rustls is rumqttc default (TLS + WSS). rumqttc = { version = "0.24", features = ["websocket", "use-rustls"] } serde = { version = "1", features = ["derive"] } serde_json = "1" image = { version = "0.25", default-features = false, features = ["png"] } # Local HH:MM axis labels for Combined graph (no full timezone DB needed beyond clock). chrono = { version = "0.4", default-features = false, features = ["clock", "std"] } # Native folder picker for profile TLS certs directory. rfd = "0.15" # OS credential store: Secret Service (Linux), Credential Manager (Windows), Keychain (macOS). keyring = { version = "3", features = ["apple-native", "windows-native", "sync-secret-service"] } # Check-for-updates: GitHub Releases HTTP + semver + SHA-256 verify. ureq = { version = "2.12", features = ["json"] } semver = "1" sha2 = "0.10" # License file verify (ed25519 public key) + machine-ID binding. ed25519-dalek = "2" base64 = "0.22" # Windows MachineGuid for Pro license machine binding (Linux uses /etc/machine-id). [target.'cfg(windows)'.dependencies] winreg = "0.52" [build-dependencies] # Embed topicbench.exe icon on Windows (and cross-compile via MinGW windres). winres = "0.1" [[bin]] name = "topicbench" path = "src/main.rs" [package.metadata.packager] product-name = "TopicBench" identifier = "com.agileautomation.mqtt-master" before-packaging-command = "cargo build --release"