How throneproj/throne works
Throne is a cross-platform Qt proxy client, with a headless/service mode. The main user workflow is to manage proxy profiles and subscriptions, configure routing, then start a connection through the engine; traffic can use system-proxy or Tun VPN modes. The README also documents protocol and custom-outbound support, testing/autoselection, scanning, statistics, and remote/headless control, so those remain visible as product branches. The sampled code confirms engine wiring, route persistence, and scan-worker startup; unsampled links are omitted or dashed where uncertain.
Main entry points: EngineHost.cpp Engine host · main.cpp Application entry · ConnectionManager.h Connection control · mainwindow.h Desktop UI
Components 20
Application control
- Application entry
src/main.cpp - Engine host
src/engine/EngineHost.cpp - Service manager
src/sys/ServiceManager.cpp
Profiles and routing
- Config generation
src/configs/generate.cpp - Protocol outbounds
src/configs/outbounds - Subscription import
src/configs/sub/SubscriptionParser.cpp - Route editor
src/ui/setting/dialog_manage_routes.cpp - Route profiles
src/database/RoutesRepo.cpp - Persistent data
include/database/DatabaseManager.h
Proxy runtime
- Connection control
include/engine/connection/ConnectionManager.h - Core supervision
include/engine/supervisor/CoreSupervisor.h
Diagnostics and operations
- IP scanner
src/scanner/ScanManager.cpp - Scan worker
include/scanner/ScanWorker.h - Connectivity tests
core/internal/probe/probe.go - Auto selector
src/engine/autoselector/AutoSelectorController.cpp - Traffic statistics
src/stats/traffic/TrafficStatsManager.cpp
User and remote interfaces
- Desktop UI
include/ui/mainwindow.h - Headless mode
include/engine/headless/HeadlessMain.h - Remote API
include/api/remote/Router.hpp
Other components
- User
Connections 24
- User → Desktop UI: uses
README.md - Application entry → Desktop UI: starts
src/main.cpp - Application entry → Engine host: creates
src/main.cpp - Application entry → Headless mode: dispatches
src/main.cpp - Application entry → Remote API: initializes
- Application entry → Service manager: integrates
src/main.cpp - Desktop UI → Engine host: controls
- Engine host → Connection control: wires
src/engine/EngineHost.cpp - Engine host → Core supervision: supervises
src/engine/EngineHost.cpp - Engine host → Remote API: constructs
src/engine/EngineHost.cpp - Engine host → Config generation: uses
src/engine/EngineHost.cpp - Connection control → Core supervision: controls
- Config generation → Protocol outbounds: builds
- User → Route editor: configures
README.md - Route editor → Route profiles: creates profiles
src/ui/setting/dialog_manage_routes.cpp - Route profiles → Persistent data: persists
- User → Subscription import: imports
README.md - Subscription import → Persistent data: stores profiles
- User → IP scanner: starts scans
- IP scanner → Scan worker: starts worker
src/scanner/ScanManager.cpp - User → Connectivity tests: requests tests
- Connection control → Auto selector: attaches
- Engine host → Traffic statistics: starts loops
src/engine/EngineHost.cpp - User → Remote API: controls remotely
README.md