NetDesk 1.5.0 — source release
This commit is contained in:
commit
ec4955682f
227 files changed
+80669
No files matched your search
@@ -0,0 +1,63 @@
|
||||
# NetDesk — Native Remote Desktop
|
||||
|
||||
A true native, cross-platform remote-desktop client. **Developed by [Akronlogic](https://akronlogic.com).**
|
||||
Full IP ownership — built from scratch, no AGPL/third-party copyleft.
|
||||
|
||||
> Goal: a premium, TeamViewer-grade experience (RustDesk is our open-source
|
||||
> *reference* for features and approach — we re-implement, we don't vendor it).
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
netdesk-native/
|
||||
├── core/ Rust core library → the compiled engine (one codebase, all platforms)
|
||||
│ signaling · E2E crypto · media transport · H.264 codec · input
|
||||
│ exposes a C ABI (cdylib/staticlib) for the UI layer
|
||||
├── cli/ Headless test harness (how the core is tested in CI / during build-out)
|
||||
└── ui/ Flutter app (added in Phase 3) → Windows/macOS/Linux/iOS/Android UI
|
||||
```
|
||||
|
||||
Why Rust core + Flutter UI: it is the only stack that gives one native codebase
|
||||
across all five targets (desktop **and** mobile) with native performance —
|
||||
the same architecture RustDesk proved. The heavy, latency-critical work lives in
|
||||
Rust; the UI is Flutter calling in over the C ABI.
|
||||
|
||||
## Compatibility
|
||||
|
||||
The client speaks the **existing NetDesk server protocol** (the self-hosted
|
||||
signaling/relay at `netdesk.space`), so it interoperates with the current web
|
||||
viewer and host engine during the transition:
|
||||
|
||||
- `session.begin` → `session.challenge` → `session.auth` → `session.accept`
|
||||
- Auth: `verifier = PBKDF2-HMAC-SHA256(password, salt, iters)`,
|
||||
`proof = SHA256(nonce ‖ verifier)`
|
||||
- E2E: ECDH P-256 → `SHA256(shared.x ‖ "e2e")` → AES-256-GCM
|
||||
- Media: AES-GCM(`iv[12] ‖ ciphertext`), plaintext `= [chan][keyframe][H.264 Annex-B]`
|
||||
|
||||
## Roadmap
|
||||
|
||||
- [x] **Phase 1 — Core network + crypto** (this commit): WSS signaling, full
|
||||
auth + E2E handshake, decrypted H.264 frame stream, headless CLI that
|
||||
verifies a live session against the real server. *Tested.*
|
||||
- [ ] **Phase 2 — Decode + render**: H.264 hardware decode (openh264/FFmpeg/
|
||||
platform decoders), frame pacing, a minimal native window showing the
|
||||
remote screen; input injection back to the host.
|
||||
- [ ] **Phase 3 — Flutter UI**: the NetDesk app shell (connect screen, session
|
||||
toolbar, address book), Akronlogic branding, over the Rust C ABI.
|
||||
- [ ] **Phase 4 — Transport**: WebRTC P2P (direct) + TURN, matching the server's
|
||||
3-tier path; adaptive bitrate.
|
||||
- [ ] **Phase 5 — Feature parity**: multi-monitor, file transfer, clipboard,
|
||||
audio, unattended access, auto-start service, auto-update.
|
||||
- [ ] **Phase 6 — Packaging + signing**: signed installers per platform
|
||||
(Akronlogic code-signing), store builds for iOS/Android.
|
||||
|
||||
## Build
|
||||
|
||||
```sh
|
||||
# Rust core + CLI (Windows uses the GNU toolchain + MinGW-w64 binutils)
|
||||
cargo build --release
|
||||
# verify against a live host:
|
||||
target/release/netdesk <host-id> <password> wss://netdesk.space/ws 10
|
||||
```
|
||||
|
||||
© Akronlogic. All rights reserved.
|
||||
Reference in new issue
Block a user