How eirikrrrr/wingox works
Wingox is a cross-platform MikroTik RouterOS desktop manager, with a reusable Rust core and a headless CLI. The main desktop flow is device selection into a multi-pane workspace, where users browse RouterOS sections or open an SSH terminal; the core supplies REST, SSH, reachability, and routed network access. The README also highlights proxy and SSH-jump connectivity and REST plus binary APIs. Some backend command wiring and unsampled capabilities are documented but not evidenced by the excerpts, so those links are omitted.
Main entry points: App.tsx App shell · rest.rs REST client · Workspace.tsx Device workspace · lib.rs Tauri command layer
Components 23
Desktop experience
- App shell
src/App.tsx - Detached window
src/Detached.tsx - Preferences UI
src/settings.tsx - Headless CLI
cli/src/main.rs
Device sessions
- Device workspace
src/Workspace.tsx - Pane tree
src/Pane.tsx - SSH terminal
src/Terminal.tsx - Certificate controls
src/Certificate.tsx - Reachability monitor
src/monitor.ts
RouterOS core
- REST client
core/src/routeros/rest.rs - REST data models
core/src/routeros/model.rs - SSH client
core/src/ssh.rs - Route probing
core/src/probe.rs
Network access
- Transport config
core/src/transport.rs - Proxy TCP routing
core/src/net.rs - TLS trust
core/src/tls.rs - Network errors
core/src/error.rs
Local state
- Tauri command layer
src-tauri/src/lib.rs - Settings storage
src-tauri/src/settings.rs - Profile storage
src-tauri/src/store.rs - Workspace storage
src-tauri/src/workspaces.rs
Other components
- Operator
- RouterOS device
Connections 23
- Operator → App shell: uses
- App shell → Device workspace: renders
src/App.tsx - App shell → Detached window: opens
src/Detached.tsx - App shell → Preferences UI: renders
src/App.tsx - App shell → Reachability monitor: uses
src/App.tsx - Device workspace → Pane tree: renders
src/Workspace.tsx - Device workspace → SSH terminal: mounts
src/Workspace.tsx - Device workspace → RouterOS device: manages
README.md - Preferences UI → Tauri command layer: invokes
- Tauri command layer → Settings storage: uses
src-tauri/src/lib.rs - Tauri command layer → Profile storage: uses
src-tauri/src/lib.rs - Tauri command layer → Workspace storage: uses
src-tauri/src/lib.rs - Headless CLI → RouterOS device: connects
README.md - Route probing → REST client: probes via
core/src/probe.rs - Route probing → Proxy TCP routing: checks route
core/src/probe.rs - REST client → REST data models: deserializes
core/src/routeros/rest.rs - REST client → Transport config: configures proxy
core/src/routeros/rest.rs - REST client → TLS trust: configures trust
core/src/routeros/rest.rs - REST client → RouterOS device: requests data
core/src/routeros/rest.rs - SSH client → Proxy TCP routing: opens stream
core/src/ssh.rs - Proxy TCP routing → Transport config: uses proxy config
core/src/net.rs - Proxy TCP routing → Network errors: reports failures
core/src/net.rs - TLS trust → Network errors: reports failures
core/src/error.rs