Open-source VPN client built with Tauri, React and Rust. Supports multiple proxy protocols via sing-box and Xray-core engines.
Russian version / Русская версия
- Multi-protocol — VLESS, VMess, Shadowsocks, Trojan, Hysteria2, TUIC
- Dual core — switch between sing-box and Xray-core in one click
- Subscriptions — import and auto-update subscription URLs
- Link import — paste
vless://,vmess://,ss://,trojan://links directly - Deep links — open
nexvpn://import/URLto add subscriptions from browser - Routing rules — domain-based rules (proxy / direct / block) with quick presets for ads blocking and regional bypass
- Split tunneling — choose default route: proxy all traffic or only selected domains (Direct All mode)
- System Proxy & TUN mode — system HTTP proxy or full TUN VPN (captures all traffic)
- Admin elevation — one-click "Run as Administrator" button for TUN mode (Windows UAC / macOS sudo prompt)
- Onboarding — interactive guided tour for first-time users with language selection
- TCP ping — single and bulk server latency testing, auto-select best server
- Quick connect — recently used and recommended servers for one-tap connection
- World map — interactive map visualization of server locations
- Themes — 7 color themes (Dark, Light, Midnight Blue, Cyberpunk, Aurora, Sunset, Matrix)
- Styles — Default, Modern Minimal, Glassmorphism, Neon Glow
- Animations — None, Smooth, Energetic (configurable, CSS-only)
- Statistics — connection history, traffic totals, live speed graph with overview/traffic/history tabs
- Logs — real-time log viewer with level filtering (All / Errors / Warnings)
- i18n — English and Russian
- HWID — optional device fingerprint for panel-based subscriptions
- Keyboard shortcuts — number keys (1-6) for navigation, Shift+D connect/disconnect, Shift+F search
- Auto-reconnect — automatically reconnects if the VPN connection drops unexpectedly
- Adaptive UI — responsive layout with floating sidebar on desktop and bottom navigation bar on mobile
- Cross-platform — Windows, macOS, Android from a single codebase
- Lightweight — single binary, no Electron, ~16 MB app size
Pre-built installers for Windows (x64), macOS (Apple Silicon) and Android (APK) are available on the Releases page.
- Rust 1.70+
- Node.js 18+
- Tauri CLI:
cargo install tauri-cli - For Android: Android SDK, NDK and Java (Android Studio recommended)
git clone https://github.com/TopPro104/nexvpn.git
cd nexvpnnpm installThe script downloads sing-box and Xray-core binaries and places them in src-tauri/binaries/ with the correct Tauri target-triple names:
# Linux / macOS
chmod +x download-cores.sh
./download-cores.sh
# Windows (Git Bash)
bash download-cores.shThe script auto-detects your platform via rustc. You can specify a target explicitly:
./download-cores.sh x86_64-pc-windows-msvcFor TUN mode on Windows, also place wintun.dll in src-tauri/binaries/.
# Development
cargo tauri dev
# Production build — Windows (MSI + NSIS installer)
cargo tauri build
# Production build — Android (unsigned APK)
npx tauri android build --apknexvpn/
├── src/ # React frontend
│ ├── api/tauri.ts # Tauri IPC bindings
│ ├── components/
│ │ ├── home/ # StatusPanel, ServerList, TrafficPanel, QuickConnect, WorldMap
│ │ ├── layout/ # Layout (top bar + sub-tabs), Sidebar
│ │ ├── settings/ # SettingsPage (style / vpn / other tabs)
│ │ ├── subscriptions/ # SubList
│ │ ├── routing/ # RoutingPage
│ │ ├── stats/ # StatsPage (overview / traffic / history)
│ │ ├── logs/ # LogsPage (with level filtering)
│ │ ├── onboarding/ # OnboardingOverlay
│ │ └── ui/ # Icons, Toast, shared UI
│ ├── context/AppContext.tsx # Global state (useReducer)
│ ├── hooks/ # useTheme, useStatus, useTraffic
│ ├── i18n/translations.ts # EN/RU translations
│ ├── themes/themes.ts # 7 color theme definitions
│ └── index.css # All styles (no CSS framework)
├── src-tauri/src/
│ ├── lib.rs # Tauri app setup
│ ├── commands.rs # IPC commands (frontend <-> Rust)
│ ├── core/
│ │ ├── manager.rs # Core process lifecycle
│ │ ├── singbox.rs # sing-box config generation
│ │ └── xray.rs # Xray config generation
│ ├── proxy/
│ │ ├── models.rs # Data models (Server, Settings, etc.)
│ │ ├── link_parser.rs # Protocol link parser
│ │ └── subscription.rs # Subscription fetcher
│ ├── system/
│ │ ├── proxy_setter.rs # Windows system proxy control
│ │ └── hwid.rs # HWID generation for panel auth
│ └── testing/
│ └── ping.rs # TCP latency testing
├── download-cores.sh # Core binary downloader
├── sign-apk.bat # Android APK signing script
├── LICENSE
└── README.md
Open the .dmg, drag NexVPN to Applications, then launch normally. In Proxy mode (default) no extra permissions are needed.
For TUN mode (captures all traffic), the app needs elevated privileges. You can either:
- Click the "Run as Administrator" button in Settings → VPN Mode → TUN, or
- Launch from terminal:
sudo /Applications/NexVPN.app/Contents/MacOS/NexVPNNote: On first launch macOS may block the app. Go to System Settings → Privacy & Security and click "Open Anyway".
Install the APK directly. The app uses a responsive mobile layout with a bottom navigation bar. All features work the same as on desktop.
For TUN mode, Android will prompt you to allow VPN permissions on first connect.
Join our Telegram group for updates, support, and discussion:
GNU GPLv3 — free to use, modify, and distribute. This software is provided under the GNU General Public License v3.0. See LICENSE for details.
HorusVPN


