| Crates.io | exfiltrate_proxy |
| lib.rs | exfiltrate_proxy |
| version | 0.2.1 |
| created_at | 2025-11-24 07:19:46.891672+00 |
| updated_at | 2025-12-21 01:39:46.618531+00 |
| description | Proxy application for the exfiltrate crate. |
| homepage | https://sealedabstract.com/code/exfiltrate |
| repository | https://github.com/drewcrawford/exfiltrate |
| max_upload_size | |
| id | 1947494 |
| size | 46,617 |
A WebSocket/TCP bridge that enables debugging of WebAssembly applications running in browsers using the exfiltrate crate.
WebAssembly applications running in a browser cannot open raw TCP sockets—they are restricted to WebSockets. The exfiltrate CLI, however, communicates via TCP.
This proxy bridges that gap by running two servers:
exfiltrate CLIMessages are forwarded bidirectionally between these endpoints, allowing the CLI to debug browser-based applications as if they were local native processes.
Start the proxy:
cargo run -p exfiltrate_proxy
Or if installed:
exfiltrate_proxy
The proxy will listen on:
127.0.0.1:1337 for TCP connections (CLI)127.0.0.1:1338 for WebSocket connections (WASM app)┌─────────────────┐ WebSocket ┌─────────────────┐ TCP ┌─────────────────┐
│ WASM App │ ◄────────────────► │ exfiltrate │ ◄──────────────► │ exfiltrate │
│ (Browser) │ Port 1338 │ _proxy │ Port 1337 │ CLI │
└─────────────────┘ └─────────────────┘ └─────────────────┘
ws://127.0.0.1:1338127.0.0.1:1337The TCP server supports multiple concurrent CLI connections. Messages received from the WebSocket (WASM app) are broadcast to all connected TCP clients.
Your WASM application should connect to the proxy's WebSocket endpoint instead of using the native TCP server. The exfiltrate library handles this automatically when compiled for wasm32-unknown-unknown targets.
The proxy outputs connection events and message sizes to stderr:
Listening on 127.0.0.1:1337
New WebSocket connection established: 127.0.0.1:xxxxx
Distributor: Received message of size 42
Distributor: Broadcasting to 1 clients
See LICENSE for details.