Licenses

Open-source licenses

PixWrench stands on excellent open-source work. These are the components that run in your browser, with their licenses.

Components that run in your browser

ComponentVersionLicenseUsed for
jSquash (@jsquash/jpeg)
Includes MozJPEG / libjpeg-turbo (IJG, BSD-3-Clause, zlib)
1.6.0Apache-2.0JPEG decode and encode
jSquash (@jsquash/webp)
Includes libwebp (BSD-3-Clause)
1.5.0Apache-2.0WebP decode and encode
jSquash (@jsquash/avif)
Includes libavif (BSD-2-Clause), libaom (BSD-2-Clause with the AOMedia Patent License 1.0)
2.1.1Apache-2.0AVIF decode (fallback) and encode
jSquash (@jsquash/png)
Includes Rust png crate (MIT / Apache-2.0)
3.1.1Apache-2.0PNG decode and encode
jSquash (@jsquash/oxipng)
Includes OxiPNG (MIT)
2.3.0Apache-2.0Lossless PNG optimization
jSquash (@jsquash/resize)
Includes Squoosh resize (Apache-2.0)
2.1.1Apache-2.0Lanczos3 resizing
wasm-feature-detect1.9.0Apache-2.0Choosing single-threaded codec builds
libheif-js
Includes libheif (LGPL-3.0), libde265 (LGPL-3.0)
1.23.5LGPL-3.0HEIC decoding where the browser can’t (separate file, see below)
zxing-wasm (reader)
Includes zxing-cpp (Apache-2.0)
3.1.5MITDecoding QR codes for the scan-safety check
qrcode-generator2.0.4MITEncoding QR codes
image-q4.0.0MITReducing PNG colors
pdf-lib1.17.1MITBuilding PDFs from images
fflate0.8.3MITZip downloads
Preact10.29.8MITInteractive tool interfaces
Lucide icons1.52.0ISCInterface icons
Sora (font)5.3.0 (Fontsource)OFL-1.1Headings
Geist (font)5.3.0 (Fontsource)OFL-1.1Body text

The site itself is built with Astro (MIT), which doesn’t run in your browser. Full license texts are available from each project’s repository, and the HEIC decoder’s licenses are published next to it at /codecs/heic/LICENSE-libheif.txt.

The HEIC decoder (LGPL-3.0)

Browsers other than Safari can’t read HEIC photos, so PixWrench loads libheif with its HEVC decoder libde265, compiled to WebAssembly by the libheif-js project (version 1.23.5). Both libraries are licensed under the GNU Lesser General Public License, version 3. We use the unmodified build published on npm and keep it as a separate, replaceable component:

  • It is served as its own files from a stable address: /codecs/heic/libheif-1.23.5.js and /codecs/heic/libheif-1.23.5.wasm, loaded at run time by a small worker script, /codecs/heic/heic-worker.js. It is never bundled into PixWrench’s own code.
  • You may replace those files with a modified version in a copy of the site; nothing in PixWrench prevents that.
  • Our terms of use allow reverse engineering of the parts of PixWrench that use the library, for debugging such modifications.

Source code. The corresponding source and build scripts are available from the libheif-js repository at the matching version (github.com/catdad-experiments/libheif-js, tag v1.23.5; the exact package is libheif-js-1.23.5.tgz), and from libheif and libde265. If those links ever stop working, email us and we’ll send you a copy of the source for the version we serve.

Where your browser can decode HEIC itself (Safari on Apple devices), the library isn’t downloaded at all.

Your images

None of these components send data anywhere. They run inside your browser tab, in background threads, on the files you choose. See how it works.