NetDesk 1.5.0 — source release

This commit is contained in:
NetDesk committed 2026-10-18 02:02:46 +00:00
commit 40318aafdd
227 files changed
+80798

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
[package]
name = "netdesk-viewer"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "NetDesk native viewer window — GPU-filtered (bilinear) remote-screen rendering with a full TeamViewer/RustDesk-style toolbar, built on eframe + egui (winit + glow). Developed by Akronlogic."
[[bin]]
name = "netdesk-viewer"
path = "src/main.rs"
[dependencies]
netdesk-core = { path = "../core" }
tokio = { workspace = true }
anyhow = { workspace = true }
# control-protocol payloads (session.info / sys.res) arrive as JSON strings from
# the core; parse them in the net thread into clean Rust before the UI sees them.
serde_json = { workspace = true }
# host-control module (host_ctl.rs) models the shared config.json with derive.
serde = { workspace = true }
# host-control module: blocking HTTPS (rustls) to the relay /api — account
# sign-in / sign-up / sign-out, device list, and /health ping. Enable the
# "json" feature for send_json / into_json (tls + gzip are on by default).
ureq = { version = "2.10", features = ["json"] }
# eframe bundles winit + the GPU backend (glow/OpenGL) + the event loop, and egui
# gives us a real toolbar/menus over the remote image. egui TextureOptions::LINEAR
# = bilinear GPU filtering = smooth + clear scaling of the decoded frame.
eframe = { version = "0.29", default-features = false, features = ["glow", "default_fonts"] }
egui = "0.29"
# OS clipboard read/write for RustDesk-style clipboard sync (egui can set but not
# read the clipboard; arboard does both). Already in the tree via eframe.
arboard = "3"
# decode the embedded NetDesk logo PNG into pixels (window icon + in-app logo
# texture) and encode the live frame to PNG for "Save screenshot".
image = { version = "0.25", default-features = false, features = ["png"] }
# native OS file-picker for the File transfer panel's "Upload…" button (pick a
# local file to send to the host). Sync FileDialog only, so no async runtime
# feature is needed; the Linux-backend features are irrelevant on Windows.
rfd = { version = "0.15", default-features = false }
# pure-Rust QR encoder (Nayuki) for in-app TOTP 2FA enrollment — render the
# host's otpauth:// secret as a QR the user scans with an authenticator app.
qrcodegen = "1.8"
# crisp, consistent icon set (web / copy / folder / lock / power / arrows / …) so
# every button shows a real icon instead of a missing-glyph box. Pure-Rust
# embedded font (Phosphor), no C build; matches egui 0.29.
egui-phosphor = "0.7"
# logging for the headless --host diagnostics
env_logger = "0.11"
# NOTE: remote audio playback ("Play remote computer sound") is implemented in
# src/audio.rs (cpal + Opus) but not yet wired in — the libopus build on this
# windows-gnu toolchain needs a reliable Opus source (audiopus_sys 0.1.8's build
# script mangles extended-length paths). Re-enable cpal + an Opus decoder here
# and `mod audio;` in main.rs once that is sorted.
# Unified app: the native Rust host engine (capture+encode+SendInput) runs
# IN-PROCESS when the user clicks Start Service, so one NetDesk.exe both views
# and hosts — no Python. Windows-only (DXGI/MediaFoundation/SendInput live here).
[target.'cfg(windows)'.dependencies]
netdesk-host = { path = "../host" }
# Remote audio playback (src/audio.rs): Opus decode via the vendored libopus
# + cpal (WASAPI) output.
netdesk-opus = { path = "../opus" }
cpal = "0.15"