Status: Current Type: Navigation Last verified: 2026-07-22 Documentation index: Documentation by task · Chinese: 简体中文
English | 简体中文
OPENPPP2 is a C++ network runtime. The root CMake project builds the native ppp executable and the static openppp2_lib library. This page is a concise repository entry point; use the current task pages below for configuration, operation, and implementation detail.
| Need | Start here |
|---|---|
| Build and make a first run | Getting started |
Configure ppp or inspect its command line |
Configuration reference · CLI reference |
| Configure routing, DNS, proxy behavior, or a platform | Guides |
| Deploy, observe, or troubleshoot a runtime | Operations |
| Understand runtime structure and lifecycle | Startup and lifecycle |
| Read or change the source safely | Source reading guide |
| Check which interfaces are stable, experimental, internal, or incomplete | Project interface map |
For a normal runtime invocation, the native process follows this path:
main.cpp
-> ppp::facade::RunApplication()
-> PppApplication::GetInstance().Run()
-> PreparedArgumentEnvironment()
-> Executors::Run()
-> RunPreparedApplication()
-> PppApplication::Main()
Argument preparation loads the configuration, resolves the application mode, and prepares the network-interface context. The normal path then enters Main(), which performs host preflight and starts the selected client, server, or proxy runtime. See Startup and lifecycle for the implementation-level sequence and shutdown behavior.
- Core native runtime:
main.cpp,ppp/,common/, and the Windows, Linux, or Darwin platform sources selected by the root CMake build. - Tests: the root project includes
tests/only when configured with-DENABLE_TESTS=ON; use the development documentation for supported test workflows. - Separate, platform-specific surfaces:
go/andgo/guardian/are Go modules;android/contains the in-tree Flutter application and Android/NDK build files;ios/contains a Swift package target; anddesktop/client/has separate Svelte/Vite and Tauri manifests. Root CMake does not build these surfaces. Read their local documentation and manifests before treating one as a production deployment path.
The linked task pages are the current navigation path. Material under docs/archive/, docs/adr/, and docs/design/ preserves historical rationale, decisions, and evidence; it is not a substitute for current configuration, CLI, or operations guidance. These navigation pages are an English/Chinese pair; use each current page’s status, language-peer, and parent-index metadata before relying on it.