Epoxy TLS ships four bundle variants via theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/MercuryWorkshop/epoxy-tls/llms.txt
Use this file to discover all available pages before exploring further.
@mercuryworkshop/epoxy-tls npm package. The variants differ across two axes: feature set (full vs minimal) and WASM delivery (bundled vs separate). Pick the combination that balances bundle size, hosting requirements, and the features your application needs.
Full vs minimal
Full build
- HTTP/1.1 and HTTP/2
- gzip and brotli response decompression
connect_websocket()method available- PEM certificate file support (
options.pem_files) - Larger WASM binary
Minimal build
- HTTP/1.1 only
- Identity encoding only (no decompression)
connect_websocket()not available- No PEM certificate file support
- Smaller WASM binary — faster initial load
EpoxyClient.fetch(), connect_tcp(), connect_tls(), and connect_udp(). The minimal build is a good fit for use cases that only need proxied HTTP/1.1 fetch and raw byte streams.
Bundled vs separate WASM
Each build comes in two sub-variants that control how the WASM binary is delivered:| Sub-variant | WASM delivery | init() call |
|---|---|---|
| Bundled | Inlined as base64 inside the JS file | await init() — no argument needed |
| Separate | Loaded from a standalone .wasm file | await init({ module_or_path: "path/to/epoxy.wasm" }) |
.wasm file from a CDN with long-lived caching headers so returning users pay zero re-download cost.
Import paths
Initializing each variant
- Bundled (any build)
- Separate WASM (full build)
- Separate WASM (minimal build)
The WASM binary is already encoded in the JS file. Call
init() with no arguments.When to use each variant
Start with the full bundled build
If you are prototyping or want the simplest possible setup, use the default import. Everything is in one file and
init() needs no arguments. You get HTTP/2, decompression, and WebSocket connect out of the box.Switch to separate WASM for production
Once you are ready to optimize, switch to the non-bundled variant. Serve the
.wasm file with a long Cache-Control header (e.g. immutable, max-age=31536000). The WASM binary is cached independently of your JS bundle, so deployments that do not change the Epoxy version cost users nothing.