You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-14Lines changed: 25 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,6 +93,11 @@ The CA is saved at `./ca/ca.crt` — only you have the private key.
93
93
mhrv-rs.exe --config config.json # Windows
94
94
```
95
95
96
+
### Diagnostic subcommands
97
+
98
+
-**`mhrv-rs test`** — send one request through the relay and report success/timing. Useful when setting up or debugging. Does not need the proxy to be running.
99
+
-**`mhrv-rs scan-ips`** — parallel TLS probe of known Google frontend IPs, sorted by latency. Swap the winning IP into your `google_ip` config field for best performance.
100
+
96
101
### Step 6: Point your browser at the proxy
97
102
98
103
Configure your browser to use HTTP proxy `127.0.0.1:8085`.
@@ -103,27 +108,33 @@ Configure your browser to use HTTP proxy `127.0.0.1:8085`.
103
108
104
109
## What's implemented vs not
105
110
106
-
This port focuses on the **`apps_script` mode** which is the only one that reliably works in 2025. Implemented:
111
+
This port focuses on the **`apps_script` mode** which is the only one that reliably works in 2026. Implemented:
107
112
108
113
-[x] Local HTTP proxy (CONNECT for HTTPS, plain forwarding for HTTP)
109
-
-[x] MITM with on-the-fly per-domain cert generation
110
-
-[x] CA generation + auto-install on macOS/Linux/Windows
111
-
-[x] Apps Script JSON relay (single-request mode), protocol-compatible with `Code.gs`
114
+
-[x] MITM with on-the-fly per-domain cert generation via `rcgen`
115
+
-[x] CA generation + auto-install on macOS / Linux / Windows
116
+
-[x] Firefox NSS cert install (best effort via `certutil`)
117
+
-[x] Apps Script JSON relay, protocol-compatible with `Code.gs`
-[x] Request coalescing: concurrent identical GETs share one upstream fetch
124
+
-[x] SNI-rewrite tunnels for YouTube / googlevideo / doubleclick / etc. — bypass the relay entirely and go direct to Google's edge with SNI=`front_domain`
125
+
-[x] Automatic redirect handling on the relay (`/exec` → `googleusercontent.com`)
-[ ] Other modes (`domain_fronting`, `google_fronting`, `custom_domain`) — mostly broken post-Cloudflare 2024 crackdown, not a priority
134
+
-[ ]**HTTP/2 multiplexing** — `h2` crate state machine (stream IDs, flow control, GOAWAY) has too many subtle hang cases; coalescing + 20-connection pool already gets most of the benefit for this workload
135
+
-[ ]**Request batching (`q:[...]` mode)** — our connection pool + tokio async already parallelizes well; batching adds ~200 lines of state management with unclear incremental gain over the current flow
136
+
-[ ]**Range-based parallel download** — edge cases (non-Range servers, chunked mid-stream, content-encoding) are real; YouTube-style video already bypasses Apps Script via SNI-rewrite tunnel
0 commit comments