Pack Camo
Rust · WebAssembly · zero uploads

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
mascot

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. 1

    Rust crate

    Each tool is a small library crate with a plain, testable core — the same code a CLI would use.

  2. 2

    wasm-bindgen

    A thin binding layer turns those functions into a WebAssembly module the browser can call directly.

  3. 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.
mascot

Drop a file. Watch it change.

Nothing to install, nothing to sign up for, and nothing sent anywhere. Pick a workspace and start.