$ show NodePassProject/Everywhere
Everywhere is an iOS VPN/proxy client that lets users choose between three open-source proxy coresβXray, sing-box, and mihomoβto route device traffic through custom configurations. The app uses Apple's Network Extension framework (NEPacketTunnelProvider) to establish a VPN tunnel, with the selected core executed inside the tunnel process. Configurations can be imported, subscribed to, or edited directly within a SwiftUI interface, and a bundled web dashboard (zashboard) provides real-time monitoring and control via the Clash API.
The LLM identified 3 files worth highlighting for reuse:
Defines the CoreNormalizer protocol that all core-specific normalizers conform to. It provides a consistent interface for converting a generic proxy configuration into the format required by a specific core (e.g., JSON for Xray/sing-box, YAML for mihomo). The protocol is self-contained, requires only Foundation, and can be implemented to add support for new proxy cores with minimal changes.
Implements CoreNormalizer for Xray-core, performing the detailed transformation of a generic configuration into valid Xray JSON. It handles field mapping, default values, and core-specific options like flow control and TLS settings. This is the canonical example of the normalizer pattern and can be used as a template for normalizers of other cores.
A static class that centralizes all UserDefaults keys, App Group identifiers, and shared constants used by both the main app and the Network Extension. It provides type-safe access to shared settings (e.g., active core, config path, tunnel status) and eliminates hardcoded strings. This pattern is easily extracted and reused in any iOS app with an extension that requires shared preferences.