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
| Component | Version | License | Used for |
|---|---|---|---|
| jSquash (@jsquash/jpeg) Includes MozJPEG / libjpeg-turbo (IJG, BSD-3-Clause, zlib) | 1.6.0 | Apache-2.0 | JPEG decode and encode |
| jSquash (@jsquash/webp) Includes libwebp (BSD-3-Clause) | 1.5.0 | Apache-2.0 | WebP decode and encode |
| jSquash (@jsquash/avif) Includes libavif (BSD-2-Clause), libaom (BSD-2-Clause with the AOMedia Patent License 1.0) | 2.1.1 | Apache-2.0 | AVIF decode (fallback) and encode |
| jSquash (@jsquash/png) Includes Rust png crate (MIT / Apache-2.0) | 3.1.1 | Apache-2.0 | PNG decode and encode |
| jSquash (@jsquash/oxipng) Includes OxiPNG (MIT) | 2.3.0 | Apache-2.0 | Lossless PNG optimization |
| jSquash (@jsquash/resize) Includes Squoosh resize (Apache-2.0) | 2.1.1 | Apache-2.0 | Lanczos3 resizing |
| wasm-feature-detect | 1.9.0 | Apache-2.0 | Choosing single-threaded codec builds |
| libheif-js Includes libheif (LGPL-3.0), libde265 (LGPL-3.0) | 1.23.5 | LGPL-3.0 | HEIC decoding where the browser can’t (separate file, see below) |
| zxing-wasm (reader) Includes zxing-cpp (Apache-2.0) | 3.1.5 | MIT | Decoding QR codes for the scan-safety check |
| qrcode-generator | 2.0.4 | MIT | Encoding QR codes |
| image-q | 4.0.0 | MIT | Reducing PNG colors |
| pdf-lib | 1.17.1 | MIT | Building PDFs from images |
| fflate | 0.8.3 | MIT | Zip downloads |
| Preact | 10.29.8 | MIT | Interactive tool interfaces |
| Lucide icons | 1.52.0 | ISC | Interface icons |
| Sora (font) | 5.3.0 (Fontsource) | OFL-1.1 | Headings |
| Geist (font) | 5.3.0 (Fontsource) | OFL-1.1 | Body 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.jsand/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.