Surge is a network traffic routing and configuration system designed to categorize and steer network requests using curated rule sets, domain lists, and IP databases. It provides the data structures and filtering logic necessary to manage how application traffic is directed across proxies, direct connections, or regional gateways.
The project distinguishes itself through granular traffic identification and steering. It identifies network requests by matching them against system process names, user-agent strings, and geographic IP ranges to apply specific routing policies. This allows for the optimization of high-bandwidth assets via content delivery network routing and the separation of domestic and international traffic.
The system provides extensive security and access control capabilities, including the blocking of trackers, telemetry, malware, and phishing domains using regular expressions and domain-suffix matching. It further manages network integrity through DNS control to prevent fake IP assignments and handles local network traffic to ensure internal requests bypass external proxies.
The project is implemented in TypeScript.