Open source notices
Every tool on this site runs in your browser, which means the code that does the work is downloaded to your machine and you can read all of it. These are the libraries that do that work, who wrote them, and the licence each one is used under.
The table lists the libraries and bundles used by the tools, with links to their source projects and licences. Library files are available in the site's vendor directory.
| File | Version | Licence | What it does |
|---|---|---|---|
| Phosphor duotone icons | 2.1.1 | MIT | the interface icons |
| mediabunny.js and mediabunny-full.js | 1.55.7 | MPL-2.0 | reads and writes video and audio through the browser's own WebCodecs |
| LAME, inside mediabunny-full.js | 3.100 (wasm) | LGPL-2.1-or-later | writes MP3, which no browser can do on its own |
| libFLAC, inside mediabunny-full.js | 1.4 (wasm) | BSD-3-Clause | writes FLAC, which no browser can do on its own |
| pdf-lib.min.js | 1.17.1 | MIT | builds and edits PDF files |
| pdf.min.js | 3.11.174 | Apache-2.0 | renders and reads PDF pages |
| xlsx.min.js | 0.20.3 | Apache-2.0 | reads and writes spreadsheets |
| fflate.min.js | 0.8.2 | MIT | zip and gzip |
| qrcode.min.js | 1.4.4 | MIT | draws QR codes |
| jsqr.min.js | 1.4.0 | Apache-2.0 | reads QR codes from a picture |
| tesseract.min.js | 5.1.1 | Apache-2.0 | reads printed text from a picture |
| libheif.js | 1.19.8 | LGPL-3.0 | opens HEIC photos from an iPhone |
| dataformats.js | js-yaml 5.4.1 + smol-toml 1.8.0 | MIT + BSD-3-Clause | reads and writes YAML and TOML |
| gifenc.js | 1.0.3 | MIT | builds the palette a GIF needs and writes the file |
| utif.js | 3.1.0 | MIT | decodes TIFF, which no browser can do |
| fonts/source-sans-3-*.woff2 | v19 | SIL OFL 1.1 | the typeface, served from this site rather than from Google |
| subtitlekit-lite.min.js | in-house | our own | reads and writes subtitle formats |
The Source Sans 3 typeface is served from this site. Phosphor icons are used under the MIT licence.
Fetched when you use the tool that needs it
A few tools run a model, and a model is too large to hand to every visitor of every page. These are downloaded the first time you use one of those tools and then cached by your browser, so it happens once. Your file is never part of these requests. It is the model that travels, not your picture or your recording.
| What | Build | Licence | What it does |
|---|---|---|---|
| transformers.js | 4.2.0 | Apache-2.0 | runs the models below, from jsDelivr |
| whisper-base | q8, about 76 MB | MIT | turns speech into text, from Hugging Face |
| MODNet | fp32, about 25 MB | Apache-2.0 | finds the person in a photo so the background can be removed |
| Swin2SR | fp32, about 52 MB | Apache-2.0 | enlarges a picture to twice its size |
| Tesseract engine and language data | 5.1.1 | Apache-2.0 | reads printed text out of a picture |
How that works, and what it means for your privacy, is on the How it works page.