MediaBastion Web
← Back to the chores

Open-source licences

MediaBastion Web is built on the libraries and models below. Each is served unmodified from this site's vendor/ or models/ folder (the only exception is qrcode, whose CommonJS browser entry is bundled into one ES module with esbuild; its MIT notice is kept inline). Licence texts are in licenses/. Nothing is fetched from a third-party CDN at run time.

Libraries

LibraryVersionLicenceUsed forSource
@imagemagick/magick-wasm0.0.43 (ImageMagick 7.1.2-30)Apache-2.0 wrapper; see the LGPL note below · NOTICEHEIC, RAW, PSD, TIFF, JXL decode; GIF, BMP, TIFF, JXL output; metadata-keeping conversions; X-ray profile listinggithub.com/dlemstra/magick-wasm
@jsquash/avif2.1.1Apache-2.0 (Squoosh / libaom)AVIF encodinggithub.com/jamsinclair/jSquash
pica10.0.3MITLanczos resizinggithub.com/nodeca/pica
exifr7.1.3MITEXIF, GPS, XMP, IPTC, ICC and thumbnail readinggithub.com/MikeKovarik/exifr
ExifReader4.44.0MPL-2.0 (file unmodified)Second metadata reader: WebP, GIF, JXL, MakerNotes, XMPgithub.com/mattiasw/ExifReader
client-zip2.5.0MIT"Download all as ZIP"github.com/Touffy/client-zip
@huggingface/transformers (Transformers.js)4.2.0Apache-2.0Runs the background-removal modelsgithub.com/huggingface/transformers.js
onnxruntime-web1.26.0-dev.20260416 (the wasm bundled by Transformers.js, plus ort.wasm.min.mjs from the same package for the upscaler worker)MITONNX inference on WebAssembly (background removal, upscaling, transcription)github.com/microsoft/onnxruntime
pdf-lib1.17.1MITPictures to PDFgithub.com/Hopding/pdf-lib
pdfjs-dist (PDF.js)6.3.289Apache-2.0 (bundled OpenJPEG BSD-2, JBIG2 Apache-2.0, qcms MIT: see vendor/pdfjs/wasm/)PDF pages to picturesgithub.com/mozilla/pdf.js
qrcode1.5.4MITQR code generationgithub.com/soldair/node-qrcode
zxing-wasm3.1.3MIT wrapper; zxing-cpp Apache-2.0 inside the wasmQR code reading when the browser has no BarcodeDetectorgithub.com/Sec-ant/zxing-wasm
mediabunny1.55.6MPL-2.0 (file unmodified)Video and audio reading, writing, trimming, conversion on WebCodecsgithub.com/Vanilagy/mediabunny
@mediabunny/mp3-encoder1.55.6MPL-2.0 wrapper around LAME (LGPL-2.1+); separate file, see the LGPL noteMP3 encoding where the browser has no MP3 encodermediabunny/packages/mp3-encoder
gifenc1.0.3MITGIF encoding (video to GIF, pictures to animation, boomerang, before/after GIF)github.com/mattdesl/gifenc

AI models

ModelFileLicenceUsed forSource
MODNet (Xenova/modnet)onnx/model_quantized.onnx, 6.6 MBApache-2.0Background removal (people and portraits, CPU); head and person framing for Smart crop and Passport photohuggingface.co/Xenova/modnet · github.com/ZHKKKe/MODNet
Real-ESRGAN AnimeVideo v3, compact x4 (SRVGGNetCompact)realesr/RealESR-AnimeVideo-v3_x4.onnx, 2.5 MBBSD-3-Clause"Enlarge (upscale)", AI path, on the CPU through onnxruntime-webhuggingface.co/tidus2102/Real-ESRGAN · github.com/xinntao/Real-ESRGAN
Whisper tiny, English only (Xenova/whisper-tiny.en)onnx/encoder_model_quantized.onnx 10.1 MB + onnx/decoder_model_merged_quantized.onnx 30.7 MB + tokenizer 2.1 MBApache-2.0 conversion of OpenAI's MIT model"Transcribe (any language)", the "English only, faster" model: speech to SRT, VTT, TXT, LRC, Markdown through Transformers.jshuggingface.co/Xenova/whisper-tiny.en · github.com/openai/whisper
Whisper tiny, multilingual (Xenova/whisper-tiny)onnx/encoder_model_quantized.onnx 10.1 MB + onnx/decoder_model_merged_quantized.onnx 30.7 MB + tokenizer 2.8 MBApache-2.0 conversion of OpenAI's MIT model"Transcribe (any language)", the "Any language" model: 99 languages, transcribe or translate into Englishhuggingface.co/Xenova/whisper-tiny · github.com/openai/whisper

Total model bytes served by this edition: about 52 MB. Models are fetched into models/ by _build/models.mjs (pinned repository and file names) and never at run time from Hugging Face.

Written for this app, no library: the EXIF/TIFF reader and writer (js/exif.js), the APNG muxer (js/anim.js), the BlurHash and ThumbHash encoders (js/hashes.js, from the published MIT reference algorithms by Wolt and Evan Wallace), the ASE swatch writer, and all pixel maths in js/pixels.js (curves, LUTs, dithering, colour-blindness matrices from Machado, Oliveira and Fernandes 2009, SSIM after Wang et al. 2004).

Evaluated and held back: BiRefNet-lite (onnx-community/BiRefNet_lite-ONNX, MIT) for objects and products; it needs WebGPU and the current onnxruntime WebGPU build failed on the reference laptop, so it is not shipped in this version. Not used, on purpose: BRIA RMBG-1.4 / RMBG-2.0 (non-commercial licences) and @imgly/background-removal (AGPL-3.0 or paid). The stock @ffmpeg/core is GPL (built with x264 and x265) and is not shipped either; video and audio run on the browser's own WebCodecs encoders through mediabunny.

The LGPL note (magick-wasm and the MP3 encoder)

vendor/magick-wasm/magick.wasm is the unmodified wasm32 build of ImageMagick from the magick-wasm project. Its Apache-2.0 wrapper statically links several LGPL libraries inside the wasm file: libheif and libde265 (LGPL-3.0, HEIC decoding), glib (LGPL-2.1) and LibRaw (LGPL-2.1 / CDDL-1.0, RAW decoding), together with permissively licensed delegates (libjpeg-turbo, libpng, libwebp, libtiff, aom, libjxl, OpenJPEG, lcms, zlib, brotli, freetype and others; the full list with copyright notices is in the NOTICE file). MediaBastion Web loads that file at run time as a separate, replaceable component, exactly as published: it is not inlined, minified or altered, so it can be swapped for any other build from its source repository. The same applies to vendor/mediabunny/mediabunny-mp3-encoder.min.mjs, which carries the LAME encoder (LGPL-2.1+) inside an MPL-2.0 wrapper and is likewise shipped as its own unmodified file.

Fonts and everything else

The page uses the system font stack (Segoe UI on Windows). No web fonts, no icon fonts, no scripts from other origins. Icons are inline SVG drawn for this product.

To rebuild vendor/: cd _build && npm install && node vendor.mjs (the _build folder and its node_modules are never deployed).