Convert anything.
Compress everything.
Upload nothing.
Pack Camo is a file toolkit that runs inside your browser tab. Images, structured data and archives are decoded, converted and re-encoded on your own machine by Rust compiled to WebAssembly. No account, no queue, no server that briefly holds your files.
- Files never leave the tab
- Native-speed codecs
- Keeps working offline

Three workspaces
Pick the shape of the problem
Each tool is a full workspace rather than a one-shot upload box: drop a file, turn the knobs, and watch the result change before you download anything.
Image Studio
Re-encode, resize and vectorise images with a live before/after.
- In
- PNG · JPEG · WebP · GIF · BMP · TIFF · ICO · SVG
- Out
- WebP · AVIF · JPEG · PNG · SVG
Data Studio
Move structured text between JSON, YAML, TOML, CSV and Markdown.
- In
- JSON · JSONL · YAML · TOML · CSV · TSV · Markdown
- Out
- JSON · JSONL · YAML · TOML · CSV · TSV · HTML
Compress & Archive
Shrink any file with gzip or Brotli, or bundle a folder into ZIP.
- In
- Any file · .gz · .zlib · .br · .zip
- Out
- .gz · .zlib · .deflate · .br · .zip · extracted files
Why local
The conversion happens where the file already is
Most online converters ask you to hand a file to a machine you know nothing about, wait in a queue, then download it back. This one skips all three steps.
Private by construction
There is no upload endpoint to trust, because there is no server in the loop. Your file is read into memory, converted, and handed back as a download.
Real codecs, not canvas tricks
The same libraries desktop tools use — the image crate, rav1e, vtracer, miniz_oxide, Brotli — compiled from Rust to WebAssembly.
Off the main thread
Every conversion runs in a Web Worker, so a 12 megapixel AVIF encode never freezes the page you are looking at.
No tiers, no watermarks
No account, no daily quota, no file-size ceiling beyond the memory your own browser will hand out.
Every knob exposed
Quality, encoder effort, longest-edge clamp, tracer thresholds, compression level. Defaults are sensible; nothing is hidden.
Works with the wifi off
Once the page and its wasm modules are cached, the tools keep working on a plane, on a train, or behind a corporate proxy.
Under the hood
Four Rust crates, compiled to WebAssembly
Nothing here is a wrapper around a hosted API. The conversion logic is ordinary Rust, unit-tested on the desktop and shipped to the browser as wasm.
- 1
Rust crate
Each tool is a small library crate with a plain, testable core — the same code a CLI would use.
- 2
wasm-bindgen
A thin binding layer turns those functions into a WebAssembly module the browser can call directly.
- 3
Web Worker
The module is instantiated once inside a worker, so heavy encodes never block the interface.
crates/
image-codecs
Decode/encode WebP, AVIF, JPEG, PNG and friends
image · rav1e · libwebp (optional)
svg-converter
Fit curves to colour regions and emit real vector paths
vtracer · visioncortex
data-convert
One typed tree, six textual formats, plus Markdown
serde · csv · toml · pulldown-cmark
archive-tools
gzip, zlib, DEFLATE, Brotli and ZIP, in both directions
flate2 · brotli · zip
Questions
Frequently asked questions
The things people reasonably want to check before dropping a file into a website.
- Is Pack Camo really free?
- Yes. There is no account, no watermark, no daily quota and no file-size tier. The whole thing is a static web app; the only cost of running a conversion is your own CPU time.
- Are my files uploaded to a server?
- No. Every conversion happens inside your browser through WebAssembly modules compiled from Rust. Your file is read into memory, converted in a Web Worker and offered back as a download. It never crosses the network, so there is nothing to delete afterwards.
- What kinds of files can it convert?
- Three families. Images: PNG, JPEG, WebP, GIF, BMP, TIFF, ICO and SVG in, and WebP, AVIF, JPEG, PNG or traced SVG out. Structured text: JSON, JSONL, YAML, TOML, CSV and TSV in any direction, plus Markdown to HTML. And any file at all can be compressed with gzip, zlib, DEFLATE or Brotli, or bundled into a ZIP.
- How is this different from other online converters?
- Most of them upload your file to a queue on someone else's machine and hand you a link. Pack Camo does the decoding and encoding locally with the same codec libraries a desktop tool would use, which is why it also keeps working when you are offline.
- Does it work on a phone?
- Yes, in any current mobile browser that supports WebAssembly. Very large images will be limited by the memory the browser gives a tab, so on a phone it is worth using the longest-edge clamp before encoding.
- Why a chameleon?
- Because the job is adaptation: the same content, re-shaped to fit wherever it has to go next, without changing what it is.

Drop a file. Watch it change.
Nothing to install, nothing to sign up for, and nothing sent anywhere. Pick a workspace and start.