Scramjet is an experimental interception based web proxy designed to evade internet censorship, bypass arbitrary web browser restrictions and innovate web proxy technologies. This project strives to maintain security, developer friendliness and performance unlike many other web proxies regardless of its open source nature. https://scramjet.mercurywork.shop/
Find a file
2024-07-14 19:19:40 -04:00
lib prettier 2024-07-14 19:17:49 -04:00
src fix: use global scope function always 2024-07-14 19:19:40 -04:00
static prettier 2024-07-14 19:17:49 -04:00
tests prettier 2024-07-14 19:17:49 -04:00
.eslintrc.json prettier 2024-07-14 19:17:49 -04:00
.gitignore change build system to rollup 2024-07-13 16:30:33 -04:00
LICENSE add license and client apis 2024-06-17 06:20:32 -04:00
package.json setup rspack 2024-07-14 05:38:56 -04:00
pnpm-lock.yaml prettier 2024-07-14 19:17:49 -04:00
prettier.json prettier 2024-07-14 19:17:49 -04:00
rainbow6siege Create rainbow6siege 2024-05-27 21:42:11 -04:00
README.md prettier 2024-07-14 19:17:49 -04:00
rspack.config.js prettier 2024-07-14 19:17:49 -04:00
server.js prettier 2024-07-14 19:17:49 -04:00
tsconfig.json prettier 2024-07-14 19:17:49 -04:00

Scramjet

Scramjet is an experimental web proxy that aims to be the successor to Ultraviolet.

It currently does not support most websites due to it being very early in the development stage.

The UI is not finalized and only used as a means to test the web proxy.

How to build

Running pnpm dev will build Scramjet and start a dev server on localhost:1337. If you only want to build the proxy without using the dev server, run pnpm build.

TODO

  • Finish HTML rewriting
    • <script type="importmap"></script> rewriting
      • Make an array of all possible import values and pass the array onto the JS rewriter, then rewrite all the URLs inside of it
  • Finish JS rewriting
    • Check imports/exports for values contained in the importmap array, don't rewrite the node value if present
  • Write client APIs
  • Fix Illegal Invocation when calling addEventListener() on the window proxy
  • Get rid of ESM builds and pollute the global namespace (maybe?)