PicWay isn’t out yet. We’re still finishing the details, and it isn’t on the App Store. Get an email when it’s out See the details →

Open-source libraries used by the PicWay web tools

The short answer

The web tools use ten open-source libraries: libheif-js, exifr, piexifjs, mp4box, mp4-muxer, @jsquash/webp, @jsquash/avif, UTIF.js, gifenc and UPNG.js. libheif-js is LGPL-3.0 and contains libheif and libde265, which are also LGPL-3.0. The HEIC tool loads it as a separate file when needed. The image converter loads its WebP, AVIF, TIFF and GIF writers only when you choose those formats, and the image compressor loads UPNG.js only when it compresses a PNG.

Last updated:

Libraries in the tools

LibraryVersionLicenseUsed for
libheif-js1.23.5LGPL-3.0 (see below)HEIC to JPG and PNG
exifr (lite build)7.1.3MITReading photo info
piexifjs1.0.6MITWriting photo info
mp4box2.5.0BSD-3-ClauseReading MP4 and MOV files
mp4-muxer5.2.2MITWriting MP4 files
@jsquash/webp1.5.0Apache-2.0 (contains libwebp, BSD-3-Clause)Writing WebP files
@jsquash/avif2.1.1Apache-2.0 (contains libavif, BSD-2-Clause)Reading and writing AVIF files
UTIF.js3.1.0MIT (uses pako, MIT and Zlib)Reading and writing TIFF files
gifenc1.0.3MITWriting GIF files
UPNG.js2.1.0MIT (uses pako, MIT and Zlib)Making PNG files smaller

LGPL-3.0 notice for libheif and libde265

libheif-js is published under the LGPL-3.0 license, and the file it ships contains compiled copies of libheif and libde265, which are also licensed under the GNU Lesser General Public License version 3 (LGPL-3.0). The license text is at gnu.org/licenses/lgpl-3.0.

  • Source code: the source of libheif and libde265 is at the two links above. The source of libheif-js is at the libheif-js link in the table.
  • How it is loaded: the HEIC tool loads libheif-js on demand, as a separate script file, only when the browser can’t decode HEIC itself.
  • Your own build: libheif-js and libheif are open source. To use your own build of libheif, build libheif-js (or any compatible decoder) from source with your version of libheif.

Image converter libraries

The image converter writes WebP and AVIF with the jSquash packages (Apache-2.0), which contain compiled copies of libwebp (BSD-3-Clause) and libavif with the AV1 codec libaom (BSD-2-Clause). TIFF is read and written with UTIF.js and GIF is written with gifenc (both MIT). Each of these is loaded as a separate file only when you pick that format, and none of them is under the GPL.

The image compressor uses the same code as the image converter, plus UPNG.js (MIT, uses pako) to make PNG files smaller. UPNG.js is loaded as a separate file only when a PNG is compressed.

If you have a question about these notices, write to the address on the support page.