Back to projects

SubTerm: Cross-Platform Terminal & Remote Access

A high-performance, unified remote infrastructure suite integrating SSH, SFTP, RDP, and NAS management across desktop and Android from a single codebase.

Role
Architect & Developer
Target Platforms
Windows Desktop, Linux, Android
Timeline
2026
Stack
Rust, Tauri v2, Kotlin, Android NDK, TypeScript
Codebase
Private (Active HomeLab development)

The problem

Managing remote servers and homelab nodes frequently requires juggling separate, heavy desktop clients (PuTTY, WinSCP, RDP clients) and clunky, ad-supported mobile apps when on the move. Most modern cross-platform attempts use Electron, introducing massive memory overhead and poor mobile adaptability.

What I built

I engineered SubTerm to bring native terminal performance and multi-protocol remote management into a unified workspace. By leveraging Tauri v2 and Rust, the core networking and cryptography routines remain native, secure, and fast, while the interface adapts seamlessly between wide desktop screens and mobile touch targets.

Architecture

┌────────────────────────────────────────────────────────┐
│               Responsive UI (TypeScript / TSX)         │
└───────────────────────────┬────────────────────────────┘
                            │ IPC / FFI Bridge
┌───────────────────────────▼────────────────────────────┐
│                  Rust Core (Tauri v2)                  │
│  ├── Async SSH / SFTP Session Multiplexing             │
│  ├── RDP Protocol Bridge & Terminal Emulation Engine   │
│  └── Secure Credential Storage & Keystore              │
└───────────────────────────┬────────────────────────────┘
                            │ Native Compilation
             ┌──────────────┴──────────────┐
             ▼                             ▼
   Windows / Linux Native         Android APK (NDK + Kotlin)

Engineering challenges & trade-offs

The primary challenge was managing cross-compilation and conditional API compilation for Android mobile targets. Native desktop APIs (such as window management and local filesystem hooks) had to be carefully scoped behind feature flags and custom Kotlin JNI glue, ensuring the Android build runs natively without bringing in unsupported desktop subsystems.

Key takeaways

Rust and Tauri v2 offer an incredible foundation for system utilities. Decoupling the protocol engine from platform-specific UI bindings makes it possible to maintain a single core that delivers genuine native speed on both workstations and mobile devices.

See other projects