A modern, secure VPN client built with Tauri + React + Rust
| Dark Mode | Light Mode | Server Map |
|---|---|---|
![]() |
![]() |
![]() |
- 🔐 Secure Authentication - Login/signup with secure token storage using OS keychain
- 🌍 73 VPN Servers - Global server network with real-time latency testing
- 🗺️ Interactive Map - MapLibre-powered server map with click-to-connect
- ⚡ WireGuard Support - Fast, modern VPN protocol with ChaCha20-Poly1305 encryption
- 🛡️ Kill Switch - Protect your connection if VPN drops
- 🔒 DNS Leak Protection - Prevent DNS leaks with custom DNS support
- 🌙 Dark Mode - Beautiful dark UI with system preference detection
- ✅ Code Signed - Signed binaries for Windows, macOS, and Linux
- ✅ Auto Updates - Automatic updates with signature verification
- ✅ Multi-language - 11 languages including RTL (Arabic, Hebrew)
- ✅ Accessible - WCAG 2.1 AA compliant with screen reader support
- ✅ Cross-platform - Native apps for Windows, macOS, and Linux
- 🚫 No Logs Policy - We don't track or log your activity
- 🔒 Encrypted Storage - OS-level secure storage for credentials
- 🕵️ IP Leak Protection - IPv6 blocking and comprehensive leak tests
- 🛡️ Audit Verified - Passed independent security audit
Download the latest release for your platform:
| Platform | Download | Requirements |
|---|---|---|
| macOS (Intel) | DMG | macOS 10.15+ |
| macOS (Apple Silicon) | DMG | macOS 11+ |
| Windows | MSI | Windows 10+ |
| Linux | AppImage | Ubuntu 20.04+ |
# Clone the repository
git clone https://github.com/VPNht/desktop.git
cd desktop
# Install dependencies
npm install
# Run development server
npm run tauri:dev
# Build for production
npm run tauri:build# Install dependencies
brew install wireguard-tools
# For code signing (maintainers only)
security import developer_id.cersudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.0-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
wireguard \
wireguard-tools# Install Visual Studio Build Tools with C++ workload
# WireGuard is bundled with the installer┌─────────────────────────────────────────────────────────────┐
│ VPNht Desktop │
├─────────────────────┬───────────────────────────────────────┤
│ Frontend │ Backend (Tauri/Rust) │
│ (React + TS) │ │
│ ┌───────────────┐ │ ┌──────────┐ │
│ │ React UI │ │ │ Commands │ ◄── IPC Channel │
│ │ Components │◄──┼───┤ │ │
│ └───────────────┘ │ └──────────┘ │
│ │ │ │
│ ┌───────────────┐ │ ┌────┴─────┐ ┌──────────────┐ │
│ │ State Mgmt │ │ │ VPN Mgmt │◄──►│ WireGuard │ │
│ │ (Zustand) │ │ └──────────┘ └──────────────┘ │
│ └───────────────┘ │ │ │
│ │ ┌────┴─────┐ ┌──────────────┐ │
│ ┌───────────────┐ │ │ Storage │◄──►│ OS Keychain │ │
│ │ i18n │ │ └──────────┘ └──────────────┘ │
│ │ (11 langs) │ │ │
│ └───────────────┘ │ ┌──────────┐ ┌──────────────┐ │
│ │ │ API │◄──►│ GraphQL API │ │
│ │ └──────────┘ └──────────────┘ │
└─────────────────────┴───────────────────────────────────────┘
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Tailwind CSS |
| State | Zustand with Immer |
| Forms | React Hook Form + Zod |
| Maps | MapLibre GL JS |
| i18n | i18next + react-i18next |
| Backend | Rust, Tauri 1.5 |
| VPN | WireGuard (kernel module) |
| Storage | keyring-rs |
| Build | Vite, Tauri CLI |
# Frontend tests
npm test
# Rust tests
cd src-tauri && cargo test
# E2E tests
npm run test:e2e
# Linting
npm run lint
cd src-tauri && cargo clippy
# Security audit
cd src-tauri && cargo audit
npm auditdesktop/
├── .github/
│ ├── workflows/ # CI/CD workflows
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ └── dependabot.yml # Dependency updates
├── src/ # Frontend source
│ ├── components/ # React components
│ ├── pages/ # Page components
│ ├── hooks/ # Custom React hooks
│ ├── stores/ # Zustand stores
│ ├── i18n/ # Internationalization
│ │ └── locales/ # Translation files (11 languages)
│ ├── utils/ # Utility functions
│ └── App.tsx # App entry point
├── src-tauri/ # Rust backend
│ └── src/
│ ├── main.rs # Tauri entry
│ ├── commands.rs # IPC commands
│ ├── vpn.rs # VPN management
│ ├── storage.rs # Secure storage
│ └── config.rs # Configuration
├── tests/ # Test files
├── docs/ # Documentation
└── README.md # This file
Security is our top priority. See our Security Policy and Security Audit Report.
- ✅ Signed binaries (Windows: Authenticode, macOS: Developer ID, Linux: GPG)
- ✅ Automatic updates with Ed25519 signature verification
- ✅ Hardware-backed credential storage
- ✅ CSP protection against XSS
- ✅ Memory-safe Rust backend
- ✅ Regular dependency auditing (Dependabot + cargo-audit)
Please report security vulnerabilities to security@vpnht.com. See SECURITY.md for details.
Supported languages:
| Language | Code | Status |
|---|---|---|
| 🇺🇸 English | en | ✅ Complete |
| 🇫🇷 French | fr | ✅ Complete |
| 🇩🇪 German | de | ✅ Complete |
| 🇪🇸 Spanish | es | ✅ Complete |
| 🇵🇹 Portuguese | pt | ✅ Complete |
| 🇧🇬 Bulgarian | bg | ✅ Complete |
| 🇨🇳 Chinese | zh | ✅ Complete |
| 🇯🇵 Japanese | ja | ✅ Complete |
| 🇷🇺 Russian | ru | ✅ Complete |
| 🇸🇦 Arabic | ar | ✅ Complete (RTL) |
| 🇮🇱 Hebrew | he | ✅ Complete (RTL) |
We welcome contributions! Please read our Contributing Guide and Code of Conduct.
- Fork the repository
- Create a feature branch:
git checkout -b feat/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feat/amazing-feature - Open a Pull Request
Our GitHub Actions workflows:
- Build - Multi-platform builds on every push
- Test - Frontend (Vitest) and backend (Rust) tests
- Security - Automated security scanning
- Release - Signed releases with auto-updates
See .github/workflows for details.
Copyright © 2024 VPNht. All rights reserved.
This project is proprietary and confidential. See LICENSE for details.
- Tauri - Framework for desktop apps
- WireGuard - Next-gen VPN protocol
- MapLibre - Open source mapping library
- Tailwind CSS - Utility-first CSS framework


