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
Avad3 fb18c8af9f
Merge pull request #1 from YourAdIsHere/main
Add support for css @import rules
2024-06-26 01:00:29 -04:00
src Add support for css @import rules 2024-06-25 20:49:48 -07:00
static add support for libcurl and epoxy 2024-05-13 21:46:47 -05:00
.eslintrc.json add license and client apis 2024-06-17 06:20:32 -04:00
.gitignore add support for libcurl and epoxy 2024-05-13 21:46:47 -05:00
esbuild.dev.js allow port variable to be set for dev server 2024-06-17 20:11:02 -05:00
esbuild.js remove unused import in build 2024-05-07 13:35:18 -05:00
LICENSE add license and client apis 2024-06-17 06:20:32 -04:00
package.json allow port variable to be set for dev server 2024-06-17 20:11:02 -05:00
pnpm-lock.yaml allow port variable to be set for dev server 2024-06-17 20:11:02 -05:00
rainbow6siege Create rainbow6siege 2024-05-27 21:42:11 -04:00
README.md Update README.md 2024-06-17 18:20:43 -04:00
tsconfig.json initial commit 2024-05-05 22:19:58 -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
    • Only thing rewritten currently are imports and exports
    • Check imports/exports for values contained in the importmap array, don't rewrite the node value if present
  • Fix CSS rewriting
  • Write client APIs