explaingit

amirhosseinjpl/jpl-sub-processor

24JavaScriptAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

Filter and validate proxy subscription lists (VLESS/VMESS/Trojan) with browser-side latency testing, then generate clean Base64 subscription links via a Cloudflare Worker with KV storage.

Mindmap

mindmap
  root((jpl-sub-processor))
    Input
      Paste subscription URL
      Mixed proxy configs
    Testing
      Browser latency check
      700ms threshold
      Drops dead configs
    Filtering
      By protocol type
      IP replacement
      CDN providers
    Output
      Base64 subscription link
      Expiry option
      Naming prefix
    Hosting
      Cloudflare Worker
      KV storage
      GitHub Pages UI
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Test proxy configs from your actual network and keep only those under 700ms latency.

USE CASE 2

Generate a shareable subscription link from a filtered list of working proxy servers.

USE CASE 3

Replace proxy IPs with CDN addresses from Cloudflare, Gcore, or Fastly for better routing.

USE CASE 4

Host the full tool for free using Cloudflare Workers and GitHub Pages with no own server.

Tech stack

JavaScriptCloudflare WorkersCloudflare KVGitHub PagesVLESSVMESS

Getting it running

Difficulty · moderate Time to first run · 30min

Deploy the Cloudflare Worker and bind a KV namespace, then either use the hosted GitHub Pages UI or serve the frontend yourself. No server required beyond a free Cloudflare account.

No license information found in the repository, use at your own discretion.

In plain English

JPL Subscription Processor is a tool that takes a list of proxy server configurations, tests each one to see if it is actually working, filters out the slow or dead ones, and then generates a shareable subscription link containing only the good ones. It runs on Cloudflare's free serverless platform, meaning you do not need your own server to host it. The supported configuration types are VLESS, VMESS, and Trojan, which are protocols commonly used in network privacy tools and censorship circumvention setups. A subscription link is a standard format that privacy apps accept to import a list of proxy servers automatically. One of the main design decisions is that the latency testing happens in the user's browser rather than on the server. This matters because in restricted network environments, a server pinging a proxy from a data center will often get different results than a user pinging the same proxy from their home connection. By running the speed test in the browser, the tool measures the latency the real user will actually experience. Any configuration that takes more than 700 milliseconds to respond is dropped before the final link is generated. After the browser finishes testing, it sends only the passing configurations to the Cloudflare Worker. The Worker stores them in a key-value database provided by Cloudflare and returns a subscription link encoded in Base64 format. You can set an expiration time on the link so it stops working after a certain period. The tool also supports additional filtering: you can keep only specific protocol types from a mixed list, replace the IP addresses in configurations with custom ones or with addresses from CDN providers like Cloudflare, Gcore, or Fastly, and apply a naming prefix to all output entries. A hosted version of the web interface is available on GitHub Pages so you can use it without deploying any code yourself.

Copy-paste prompts

Prompt 1
What proxy protocols does this tool support and how do I add a new one?
Prompt 2
How do I deploy this to my own Cloudflare account and set up the KV namespace?
Prompt 3
How does the browser-side latency test work and can I change the 700ms cutoff threshold?
Prompt 4
How do I set an expiration time on a generated subscription link?
Prompt 5
Can I filter the output to keep only VLESS configs from a mixed subscription list?
Open on GitHub → Explain another repo

← amirhosseinjpl on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.