System Topology
The current workspace is organized around a client GUI, a client core, and a server core. The pieces are related, but they are not one shared runtime:
flowchart LR
App["Local applications"] --> Listener["HTTP / SOCKS / mixed / TUN listeners"]
Listener --> Client["Chimera_Client / clash-rs-compatible core"]
GUI["Chimera desktop GUI"] --> Client
GUI --> Service["chimera-service / service mode"]
Service --> Client
Client --> Remote["Remote proxy server"]
Remote --> Server["Chimera_Server or compatible xray-core server"]
Server --> Internet["Target services / internet"]
Component Roles
| Component | Runtime role | Local evidence |
|---|---|---|
Chimera | Desktop control surface. It imports profiles, selects and updates proxy cores, generates runtime config, manages system proxy state, and can start the core either as a child process or through service mode. | Chimera/README.md, backend/tauri/src/lib.rs, backend/tauri/src/core/clash/core.rs |
Chimera_Client | Clash-family client core. It parses Clash-style YAML, starts inbound listeners, resolves DNS, applies rules, dials outbound proxies, exposes REST APIs, and supports hot reload. | Chimera_Client/README.md, clash-lib/src/config/def.rs, clash-lib/src/app/* |
Chimera_Server | xray-core-compatible server core, currently centered on inbound parsing and inbound protocol behavior. | Chimera_Server/README.md, chimera_server_app, chimera_server_lib |
Traffic Flow
- Applications enter the client through local HTTP, SOCKS, mixed, TUN, redir, or TProxy listeners, depending on enabled features and platform support.
Chimera_Clientclassifies each flow with its rule engine and DNS resolver.- The selected outbound protocol establishes the remote connection.
- On the server side,
Chimera_Servercan terminate supported inbound protocols and forward traffic according to the configured server behavior.
Control Flow
Chimera does not terminate remote proxy protocols itself. It manages the local
core lifecycle and runtime files:
- profile files live under the app profile/config directories,
profiles.yamltracks profile metadata,- a generated runtime YAML is passed to the selected core,
- service mode moves core lifecycle into
chimera-servicewhile the GUI remains the control surface.