Sub-Store is a Node.js backend service for managing and converting proxy configurations across multiple platforms (QX, Loon, Surge, Stash, Shadowrocket, etc.). It provides RESTful APIs for subscription management, collection grouping, artifact processing, file handling, settings, logging, token-based sharing, and synchronization with remote storage (e.g., GitHub Gist). The system features a modular architecture with a central `$` object for shared state (caching, logging, HTTP client, environment), a proxy processing pipeline (parse → preprocess → process operators → produce), and platform-specific producers/parsers. Key capabilities include format conversion between proxy schemes (URI, Clash, Surge, Loon, QX, sing-box), rule-based traffic filtering, scriptable configuration manipulation, age-encrypted secure sharing, and automated cron jobs for tasks like artifact sync and MMDB updates. The codebase demonstrates strong engineering practices through separation of concerns, extensive test coverage (Mocha/Chai), and reusable utility patterns. Notable components include age encryption for secure data sharing, configurable caching layers with TTL and auto-cleanup, request concurrency control for external API limits, and a migration system for schema evolution. However, the reliance on `eval` for environment variable handling and dynamic imports introduces runtime fragility, and the extensive platform-specific logic (numerous producers/parsers) increases maintenance complexity. Despite these challenges, the project is actively maintained with recent commits and shows commitment to quality via structured error handling, validation patterns, and dependency management via pnpm.
This repository is a proxy subscription aggregation and distribution system. It periodically collects free proxy subscription links (Clash YAML and V2Ray URI formats) from multiple public sources, merges them, classifies nodes by TCP connectivity (reachable/unreachable/untested), and serves the resulting files via a Cloudflare Worker. The system is driven by a GitHub Actions workflow that runs every 12 hours, executing Python scripts to fetch, process, and commit updated subscriptions. The architecture is a data pipeline application with a serverless serving layer. Key entry points include main.py (orchestrating collection and merging), check_nodes.py (TCP connectivity classification), and worker/sub.mjs (Cloudflare Worker for serving with caching and ETag). External dependencies include requests, PyYAML, and the Cloudflare Workers runtime. The repository also includes a weekly commit history cleanup workflow to keep repository size small. The project is actively maintained with frequent updates and tests, though it relies on unstable external proxy sources.