Scramjet is an open-source web proxy from Mercury Workshop that intercepts and rewrites websites inside your own browser, using a service worker, rather than on a remote server.
Explanation
Most web proxies, including AnyProxy, fetch a page on their own servers, rewrite its links and scripts so they keep pointing back through the proxy, and send the result to your browser. Scramjet moves that rewriting into the browser. A service worker, a script a site can install to intercept its own network requests, catches each request the proxied page makes, and Scramjet rewrites the HTML, CSS and JavaScript locally with a rewriter written in Rust and compiled to WebAssembly. The network fetching still has to go somewhere, which is why browser-side proxies pair with a transport such as Wisp. Its repository, started in May 2024 and licensed AGPL-3.0, calls it an experimental interception-based web proxy for evading censorship and browser restrictions, and lists sites such as Google, YouTube, Discord and Spotify as working targets. The trade-offs are practical. Browser-side rewriting spreads work onto visitors' devices and lowers server cost, but depends on service workers and WebAssembly behaving well in the visitor's browser and can be slower on weak devices. Server-side rewriting keeps the browser's job simpler. Neither design changes the basics: the operator of the relay sees your traffic.
In practice
Scramjet, from Mercury Workshop, does most proxy rewriting inside your browser with a service worker, rather than on a server. That is a different design from server-side engines — including AnyProxy's, which fetches and rewrites pages on regional servers before sending them to you. Browser-side engines reduce server load; server-side engines keep the browser simpler and work in browsers where service workers are limited.
Sources: Scramjet (GitHub) · Wisp protocol specification (GitHub)
Questions about Scramjet
Related terms