An encrypted proxy for browser javascript http://epoxy.r58playz.dev/
Find a file
2024-02-04 12:06:51 -08:00
client enable atomics and back to optimizing for speed 2024-02-04 12:06:51 -08:00
server enable atomics and back to optimizing for speed 2024-02-04 12:06:51 -08:00
simple-wisp-client enable atomics and back to optimizing for speed 2024-02-04 12:06:51 -08:00
wisp optimizations and more deadlock fixes 2024-02-03 22:46:19 -08:00
.envrc nixification 2024-01-09 19:46:05 -08:00
.gitignore make wasm smaller and update build/test system 2024-01-31 06:47:00 -08:00
.npmignore npm packaging 2024-01-15 14:38:46 -05:00
Cargo.lock enable atomics and back to optimizing for speed 2024-02-04 12:06:51 -08:00
Cargo.toml enable atomics and back to optimizing for speed 2024-02-04 12:06:51 -08:00
flake.lock nixification 2024-01-09 19:46:05 -08:00
flake.nix nixification 2024-01-09 19:46:05 -08:00
package.json make wasm smaller and update build/test system 2024-01-31 06:47:00 -08:00
README.md docs 2024-01-15 18:01:16 -05:00

epoxy

Epoxy is an encrypted proxy for browser javascript. It allows you to make requests that bypass cors without compromising security, by running SSL/TLS inside webassembly.

Simple usage example for making a secure GET request to httpbin.org:

import epoxy from "@mercuryworkshop/epoxy-tls";

const { EpoxyClient } = await epoxy();
let client = await new EpoxyClient("wss://localhost:4000", navigator.userAgent, 10);

let response = await client.fetch("https://httpbin.org/get");
await response.text();

Epoxy also allows you to make arbitrary end to end encrypted TCP connections safely directly from the browser.

Building

Server

  1. Generate certs with mkcert and place the public certificate in ./server/src/pem.pem and private certificate in ./server/src/key.pem
  2. Run cargo r --bin epoxy-server, optionally with -r flag for release

Client

Note: Building the client is only supported on linux

  1. Make sure you have the wasm32-unknown-unknown target installed, wasm-bindgen and wasm-opt executables installed, and bash, python3 packages (python3 is used for http.server module)
  2. Run pnpm build