mirror of
https://github.com/MercuryWorkshop/epoxy-tls.git
synced 2025-05-13 14:30:02 -04:00
29 lines
1.1 KiB
Markdown
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`
|