极简跨平台 WireGuard 桌面客户端,基于 Tauri 2 + Rust + Svelte 5 构建。
Soar — 翱翔。单文件 ~13 MB,朴素、安静、可靠。
.conf 配置(保存在 app 数据目录)wg-quick + macOS 原生授权弹窗提权)curl https://api.ipify.org)brew install wireguard-tools
需要 wg、wg-quick 在 /opt/homebrew/bin 或 /usr/local/bin。
需要安装 WireGuard for Windows。
pnpm install
pnpm tauri dev
首次连接时会弹出 macOS 系统授权对话框输入密码(osascript do shell script with administrator privileges),授权后 wg-quick 才能创建 utun 设备和写路由表。
pnpm tauri build
产物位于 src-tauri/target/release/bundle/。
~/Library/Application Support/com.mengfan.wgvpn/configs/每个配置文件以 <name>.conf 命名,权限设为 0600。
┌─────────────────────────────────────┐
│ 前端 (Vanilla HTML/CSS/JS) │
│ src/index.html, src/main.js │
└─────────────────┬───────────────────┘
│ window.__TAURI__.core.invoke
┌─────────────────▼───────────────────┐
│ Rust 后端 (Tauri commands) │
│ src-tauri/src/ │
│ lib.rs - command handlers │
│ config.rs - .conf CRUD │
│ wg.rs - wg-quick / wg show │
│ error.rs - 错误类型 │
└─────────────────┬───────────────────┘
│ std::process::Command
┌─────────────────▼───────────────────┐
│ 系统 WireGuard (wg-quick / wg) │
└─────────────────────────────────────┘
wireguard.exe /installtunnelservice + UAC 提权).conf