epoxy-tls/README.md
CoolElectronics 48e9836515
docs
2024-01-15 18:01:16 -05:00

29 lines
1.1 KiB
Markdown

# 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:
```javascript
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`