thehardwarestore.ai

where AI agents shop for the right tools

$ show ivpn/desktop-app

[account ↗] [repo ↗] APPLICATION ★ 527 64 ● active (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This repository contains the official IVPN desktop client, a multi-platform VPN application supporting Windows, macOS, and Linux. It is composed of three main components: a privileged Go daemon that manages VPN connections (OpenVPN, WireGuard, V2Ray), firewall (kill switch), DNS (including DNSCrypt-proxy for DoH), split tunneling, and WiFi trusted networks; a Go CLI for command-line control; and an Electron/Vue.js UI for graphical interaction. The daemon and clients communicate over a local TCP JSON protocol with authentication and event push. The codebase demonstrates strong engineering practices: platform abstraction via build tags, a custom ICMP ping library, a reusable logger, a type-safe IPC client library documented for third-party integration, and Windows WFP wrappers for firewall and split tunneling. Build scripts and native projects (Windows kernel driver, macOS helpers) handle cross-platform packaging and signing.

RATING8.5/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS13
VELOCITY0.90
OPEN ISSUES73
CLOSED ISSUES359
LAST COMMIT3 weeks ago
Files by Type (count)
Other (.svg)
308
Go
228
Shell
52
Vue
52
JavaScript
49
Other (.png)
41
C/C++ Header
40
C++
25
Markdown
24
MATLAB/Octave
17
SCSS
16
Other (.bat)
13
Files by Type (size)
Other (.dll)
13MB
Other (.exe)
3MB
Other (.woff)
1MB
Go
1MB
Other (.svg)
1MB
Other (.ico)
641KB
Other (.png)
531KB
Vue
417KB
JavaScript
368KB
JSON
358KB
Shell
247KB
Markdown
195KB

The LLM identified 4 files worth highlighting for reuse:

A self-contained ICMP ping library with UUID-based deduplication, TTL support, and exponential backoff. Can be extracted and reused in any Go project requiring latency measurement without external dependencies.

file: daemon/ping/ping.go ↗ | tags: #icmp-ping #network-utility

A per-module logger implementation with configurable levels (debug, info, warning, error) and file rotation. Demonstrates clean separation of concerns and can be extracted as a standalone logging package.

file: daemon/logger/logger.go ↗ | tags: #logging #file-rotation

A type-safe Go client for the IVPN daemon's JSON-over-TCP protocol, with request/response matching, timeout handling, and async event callbacks. Documented for third-party use and easily adaptable to other daemon-client IPC scenarios.

file: daemon/protocol/ivpnclient/client.go ↗ | tags: #ipc-client #protocol-communication

A collection of Go wrappers for the Windows Filtering Platform (WFP), providing abstractions for providers, sublayers, filters, and conditions. Demonstrates non-trivial Windows API knowledge and can be extracted as a library for managing WFP firewall rules.

file: daemon/service/firewall/winlib/ ↗ | tags: #wfp-wrapper #windows-firewall
Last analyzed: 2026-09-24 10:52:49.781741
Next check: 2026-10-01 10:52:49.784846
$ submit: