Installation
Start the proxy
Browser deployments require a WebSocket-to-TCP proxy since browsers cannot make raw TCP connections:Key points:
- Proxy only forwards bytes (no TLS termination)
- All encryption and attestation verification happens in the browser
- Allowlist is required for security (prevents SSRF attacks)
Architecture
The WASM module handles attested TLS + HTTP/1.1 protocol (including chunked transfer encoding for streaming LLM responses).Usage patterns
- Fetch API
- AtlsHttp (low-level)
- AttestedStream (raw)
Fetch-compatible API with HTTP handling in Rust/WASM:
API reference
createAtlsFetch(options)
Create a fetch-compatible function with attestation support:AtlsHttp.connect(proxyUrl, serverName)
Connect to a TEE server and return an HTTP client:AttestedStream.connect(proxyUrl, serverName)
Connect to a TEE server and return a raw attested TLS stream:Proxy setup
Browser deployments require a WebSocket-to-TCP proxy since browsers cannot make raw TCP connections.Quick start
Key points
- Proxy only forwards bytes - No TLS termination
- All encryption happens in the browser - End-to-end security
- Allowlist is required - Prevents SSRF attacks
- No attestation verification in proxy - All verification happens in the browser