Scramjet is an interception-based web proxy that the successor to Ultraviolet. It is designed with security, developer friendliness, and performance in mind. Scramjet strives to have a clean, organized codebase to improve maintainability. Scramjet is made to evade internet censorship and bypass arbitrary web browser restrictions.
Some of the popular websites that Scramjet supports include:
- Recent versions of
node.jsandpnpm rustupwasm-bindgen- Binaryen's
wasm-opt - this
wasm-snipfork
- Clone the repository with
git clone --recursive https://github.com/MercuryWorkshop/scramjet - Install the dependencies with
pnpm i - Build the rewriter with
pnpm rewriter:build - Build Scramjet with
pnpm build
You can run the Scramjet dev server with the command
pnpm devScramjet should now be running at http://localhost:1337 and should rebuild upon a file being changed (excluding the rewriter).
The official Scramjet Typedoc gets deployed via GitHub Actions along with the demo site here.
You can run it locally with:
pnpm run docs
pnpm docs:dev
pnpm docs:serve
Do you want to run the Scramjet demo and Typedoc together like what is served on GitHub Pages by the Action?
You can do this by running the serve script:
chmod +x scripts/serve-static.sh
./scripts/serve-static.shThis essentially simulates the CI pipeline, but in a shell script.
- TN Docs - There's a page on TN's docs for Scramjet, which is structured more like a guide if you are an interested proxy site developer.
- Scramjet Typedocs - Contains documentation for Scramjet APIs. This is useful for any proxy site developer.
- Scramjet-App - A simple example of a proxy site, which uses Scramjet in a mass-deployable manner. This is based on Ultraviolet-App for familiarity.
