Third-party notices
Byhand is built on open-source software. Local tools run these libraries as
WebAssembly/JavaScript inside your browser. This file is the license audit
required by the build (see scripts/license-audit.mjs, which fails CI if any
dependency is AGPL/GPL).
Copyleft (recorded, permitted for a web service)
| Package | License | Notes |
|---|---|---|
@ffmpeg/core (ffmpeg.wasm core) |
GPL-2.0-or-later (NOT LGPL: the published core is built with libx264, which makes the whole binary GPL) | FFmpeg compiled to WASM. Loaded at runtime as a separate, unmodified program from /wasm/ inside a Web Worker and driven through its command-line interface; Byhand's own code is not linked into it. Complete corresponding source: https://github.com/ffmpegwasm/ffmpeg.wasm (tag v0.12.10) and https://ffmpeg.org. If a GPL component is unacceptable, replace it with a self-built LGPL core (configure FFmpeg without --enable-gpl/libx264; H.264 encoding then becomes unavailable and Compress Video must output VP9/WebM). |
heic-to (bundles libheif + libde265) |
LGPL-3.0 | HEIC decoding. Runtime-loaded WASM module. Source: https://github.com/hoppergee/heic-to |
Not used, by policy
MuPDF / mupdf.js, PyMuPDF and Ghostscript are AGPL-3.0 (Artifex dual license). They are excluded; PDF compression and encryption use QPDF instead.
Permissive
| Package | License | Used for |
|---|---|---|
astro, @astrojs/* |
MIT | Framework |
preact, @nanostores/preact, nanostores |
MIT | Islands + state |
tailwindcss |
MIT | Styling |
vite-plugin-pwa, @vite-pwa/astro, workbox-* |
MIT | Service worker |
pdf-lib |
MIT | PDF merge/split/rotate/watermark/page numbers/JPG→PDF |
pdfjs-dist (pdf.js) |
Apache-2.0 | PDF rendering, text extraction, previews |
@neslinesli93/qpdf-wasm |
ISC (wrapper) / QPDF: Apache-2.0 | PDF compress, encrypt, decrypt |
@jsquash/jpeg (MozJPEG) |
Apache-2.0 / BSD-3 (MozJPEG) | JPEG codec |
@jsquash/png, @jsquash/oxipng |
Apache-2.0 / MIT (Oxipng) | PNG codec + optimiser |
@jsquash/webp (libwebp) |
Apache-2.0 / BSD-3 (libwebp) | WebP codec |
@jsquash/avif (libavif, dav1d, aom) |
Apache-2.0 / BSD-2 | AVIF codec |
@jsquash/resize |
Apache-2.0 / MIT | Lanczos resize |
@ffmpeg/ffmpeg, @ffmpeg/util |
MIT | ffmpeg.wasm JS wrapper |
tesseract.js, tesseract.js-core |
Apache-2.0 | OCR, on-device (worker + English data self-hosted under /wasm/tesseract) |
onnxruntime-web |
MIT | Runs the background-removal model in the browser |
MODNet portrait matting model (public/wasm/models) |
Apache-2.0 (ZHKKKe/MODNet) | Background removal weights, downloaded at build with a pinned sha256 |
pica |
MIT | Lanczos upscaling |
signature_pad |
MIT | Drawn signatures for Sign PDF |
client-zip |
MIT | ZIP downloads |
qrcode |
MIT | QR code generation |
bwip-js |
MIT | Barcode generation (Code 128/39, EAN, UPC, ITF-14, Data Matrix, PDF417) |
mammoth |
BSD-2-Clause | DOCX parsing for Word → PDF |
prettier |
MIT | Code beautifier |
marked |
MIT | Markdown rendering |
dompurify |
Apache-2.0 / MPL-2.0 | HTML sanitising |
docx |
MIT | DOCX generation |
geist (Geist Sans / Mono) |
SIL OFL 1.1 | Typography |
arctic |
MIT | Google / Apple OAuth client |
stripe |
MIT | Billing |