Catalog app · RISC-V VM
Run oxipng in the browser
Shrink PNG files losslessly by re-encoding them with better compression settings.
Try it live
Nothing is downloaded until you press Run.
Check the installed oxipng build
Installs oxipng 10.1.1 from the signed catalog (every chunk is verified before it is written), then runs the commands below in the VM's shell.
bash
oxipng --version oxipng --help | head -n 3
Expected output
$ oxipng --version oxipng 10.1.1 $ oxipng --help | head -n 3 Losslessly improve compression of PNG files Usage: oxipng [OPTIONS] <files>...
What it is
oxipng tries combinations of filters and deflate settings and keeps the smallest result, without changing a single pixel; it can also strip metadata.
Package facts
- version
10.1.1- runs on
- RISC-V VM (
elf-app,riscv64gc-linux-musl) - download
- 666 kB compressed · 1 file
- command
oxipng- requires
- nothing else — a static binary
- license
MIT(upstream)- upstream
- github.com/oxipng/oxipng
- categories
- Images
- catalog
- generation 12, Ed25519-signed
Install and run it from your page
With the SDK, installApp resolves oxipng in the signed index, fetches its content-addressed chunks from the CDN, verifies each one and writes the files into the VM. Details in Installing catalog apps.
javascript
import { createNano } from "@userland-run/nano-sdk";
const nano = await createNano({ image: { wasm: "/nano/console.wasm" }, ramMB: 512 });
await nano.installApp("oxipng"); // signature-verified, cached in OPFS
const r = await nano.shExec("oxipng --version");
console.log(r.stdout);Typical usage of the upstream command-line tool:
bash
oxipng -o 4 --strip safe *.png
Caveats
- On NanoVM v0.2.1 its real work did not finish within the live sample's 2-billion-instruction budget in our tests (it parallelises with threads, which NanoVM schedules cooperatively), so the live sample only checks the installed build.