Licences et sources

Ce site n’existe que grâce à des moteurs libres compilés en WebAssembly. Voici lesquels, sous quelle licence, et où trouver leurs sources.

Moteurs embarqués aujourd’hui

MoteurLicencePoids au premier lancement
age (typage)BSD-3-Clause155 ko
décodeurs d’images à la carteMIT / Apache-2.07,3 ko – 850 ko
djvu-rsMIT1,4 Mo
docxMIT644 ko – 747 ko
exifrMIT16 ko – 102 ko
fast-xml-parserMIT80 ko – 115 ko
fflateMIT19 ko – 98 ko
ffmpeg.wasmGPL-2.0 ou ultérieure11 Mo
hash-wasmMIT53 ko – 72 ko
hb-subsetMIT1,6 Mo
hyparquetMIT92 ko
js-yamlMIT62 ko
jsQRApache-2.0671 ko
jSquashApache-2.0650 ko – 672 ko
jSquashApache-2.0195 ko – 3,8 Mo
libarchiveBSD1,1 Mo – 1,6 Mo
libheifLGPL-3.01,1 Mo – 1,6 Mo
mammothBSD-2-Clause502 ko – 954 ko
markedMIT44 ko
msgreaderApache-2.0519 ko
Papa ParseMIT24 ko – 49 ko
pdf-libMIT432 ko – 2,3 Mo
pdf.jsApache-2.01,7 Mo – 2,2 Mo
potraceGPL-2.02,0 Mo
qpdf 12.2Apache-2.01,4 Mo – 1,4 Mo
qrcodeMIT43 ko – 83 ko
resvgMPL-2.02,5 Mo – 3,0 Mo
SheetJSApache-2.0496 ko – 979 ko
sql.js (SQLite)MIT750 ko
TesseractApache-2.05,9 Mo
TurndownMIT245 ko
wawoff2MIT315 ko – 938 ko
zip.jsBSD-3-Clause120 ko

Sources des moteurs sous licence copyleft

Quatre moteurs servis par le site sont sous GPL, LGPL ou MPL, des licences qui obligent à donner accès aux sources. Chaque lien mène aux sources de la version exacte que nous servons.

  • ffmpeg.wasm, paquets @ffmpeg/core et@ffmpeg/core-mt en version 0.12.10, sous GPL-2.0 ou ultérieure. Sources :commit 71aa99d pour core,commit 63ea4cc pour core-mt. Le build compile FFmpeg n5.1.4 avec x264, x265, libvpx et lame ; son Dockerfile, dans ces mêmes commits, désigne la source de chacun.
  • potrace, paquet esm-potrace-wasm 0.5.0, sous GPL-2.0. Sources :commit 6814c0b.
  • libheif, paquet libheif-js 1.19.8, sous LGPL-3.0. Sources :libheif-js 1.19.8, dont le binaire vient delibheif-emscripten v1.19.8, compilé depuislibheif v1.19.8.
  • resvg, paquet @resvg/resvg-wasm 2.6.2, sous MPL-2.0. Sources :resvg-js v2.6.2.

ffmpeg.wasm et esm-potrace-wasm n’ont pas de tag pour ces versions. Le lien mène alors au commit que la publication npm désigne. Pour @ffmpeg/core, qui n’en désigne aucun, c’est le commit qui fixe le numéro 0.12.10, daté du même jour que la publication.

Obligations que nous respectons

  • ffmpeg.wasm est servi dans un build qui inclut x264 : il relève donc de la GPL, qui impose de donner accès aux sources de ce build. Les liens sont dans la section ci-dessus.
  • RAR : libarchive lit ces archives avec son propre code, sous licence BSD. Le format ne s’écrit qu’avec le logiciel de son éditeur, RARLAB : aucun outil du site ne produit de fichier RAR, et c’est écrit sur la page concernée plutôt que caché.
  • pdf.js embarque des polices de substitution — Liberation Sans, sous licence SIL Open Font License, et les polices Foxit — pour afficher les documents qui n’embarquent pas les leurs. Nous les servons telles quelles depuis notre origine, avec leurs fichiers de licence, sous /vendor/pdfjs/standard_fonts/.
  • Aucun moteur sous AGPL (Ghostscript, MuPDF) n’est utilisé. Les fonctions qu’ils rendraient faciles sont refaites à partir de briques permissives, ou reportées.

Autres composants servis

  • Archivo et Martian Mono, les deux polices du site, sousSIL Open Font License 1.1, servies depuis notre origine à partir des paquets Fontsource.
  • Liberation Sans, sous SIL Open Font License 1.1, pour les sous-titres incrustés et le texte des SVG convertis. Sa licence est servie à côté, sous/vendor/fonts/LICENSE_LIBERATION.
  • Les données de langue de Tesseract, français et anglais, issues detessdata_best sous licence Apache-2.0 et distribuées par les paquets@tesseract.js-data sous MIT.
  • Les bibliothèques JavaScript empaquetées dans les pages — preact, comlink, fflate, pdf-lib et les autres — sont listées avec le texte de leur licence danslicences-tierces.txt. Ce fichier est produit au build à partir de ce qui est réellement empaqueté, pas d’une liste tenue à la main.

Moteurs prévus

Ces moteurs figurent au catalogue du projet mais ne sont pas encore embarqués. Ils apparaîtront dans le tableau ci-dessus le jour où un outil les utilisera réellement.

DuckDB · libvips · ImageMagick · pandoc