Crédits
Crédits open source
Les logiciels open source avec lesquels ce site est construit, avec leur licence et où obtenir leur code source.
Astro
Les pages de ce site sont construites avec Astro 7.3.2, un framework web : il transforme les gabarits et les textes du site en fichiers HTML que votre navigateur charge. Copyright (c) 2021 Fred K. Schott.
Source : le projet Astro sur GitHub. Sous licence MIT. Astro construit le site et n’est jamais envoyé à votre navigateur.
Les codecs d’image qui font le travail
L’outil comprime et convertit des images avec des modules WebAssembly, empaquetés par jsquash et utilisés ici comme les paquets @jsquash/jpeg 1.6.0, @jsquash/png 3.1.1, @jsquash/oxipng 2.3.0, @jsquash/webp 1.5.0, @jsquash/avif 2.1.1 et @jsquash/resize 2.1.1. Jamie Sinclair publie ces six paquets sous la Apache License 2.0, qui couvre le JavaScript qui charge chaque module.
Cette licence est celle de l’enveloppe, pas celle des codecs. Chaque module WebAssembly est compilé à partir du projet de quelqu’un d’autre, sous sa propre licence, et c’est le module qui fait la compression. Chacun a donc sa propre entrée ci-dessous, avec le texte de licence que le module lui-même distribue.
JPEG : @jsquash/jpeg 1.6.0
En amont : le projet Mozilla MozJPEG, que le readme du paquet nomme lui-même. Les versions WebAssembly que ce site distribue portent le regroupement de licences de libjpeg-turbo : la Licence IJG, la Licence BSD modifiée (3 clauses), copyright (C) 2009-2020 D. R. Commander et (C) 2015 Viktor Szathmáry, et la Licence zlib pour les extensions SIMD. Ce regroupement exige que le README de l’IJG l’accompagne, si bien que ce site sert aussi ce README. Aucune de ces licences n’est l’Apache 2.0.
Le paquet n’enregistre aucun numéro de version en amont, si bien que ce site n’en nomme pas.
PNG : @jsquash/png 3.1.1
En amont : Squoosh, version v1.12.0 dans le readme du paquet lui-même. Le module distribue la mention BSD à 3 clauses avec Copyright (c) 2010, Google Inc.. Ce readme appelle aussi le module Apache-2.0 ; ce site distribue la mention que porte le module et laisse la différence non résolue. Une autre chose vaut la peine d’être connue : ce fichier est le texte identique, octet pour octet, à la mention du module WebP ci-dessous, ce n’est donc pas une licence écrite pour le codec PNG.
Optimisation PNG : @jsquash/oxipng 2.3.0
En amont : oxipng, version v3.0.0 dans le readme du paquet lui-même, sous la MIT License, Copyright (c) 2016 Joshua Holmer. Ce module fait une seconde passe sur une sortie PNG pour que la même image occupe moins d’octets, c’est pourquoi un PNG peut revenir plus petit qu’il n’est entré.
WebP : @jsquash/webp 1.5.0
En amont : libwebp, version v1.0.2 dans le readme du paquet lui-même, sous la mention BSD à 3 clauses avec Copyright (c) 2010, Google Inc.. C’est une licence BSD, pas l’Apache 2.0.
AVIF : @jsquash/avif 2.1.1
En amont : libavif, version v1.0.1 dans les readme du paquet lui-même. Le paquet ne distribue aucun texte de licence pour ses versions WebAssembly, si bien que ce site sert le fichier de licence du projet à cette étiquette. Ce fichier est la propre mention BSD à 2 clauses de libavif, plus une section par fichier ou répertoire qu’il emprunte (un analyseur OBU de dav1d, des aides d’iccjpeg, des fichiers de gdk-pixbuf et des scripts de compilation) et l’Apache License 2.0 à la fin : la licence libavif v1.0.1.
Le fichier de libavif ne couvre pas le codec AV1 que le module lie. Chaque module WebAssembly rapporte AOMedia Project AV1 Encoder v3.7.0 ou AOMedia Project AV1 Decoder v3.7.0 dans une chaîne qui lui est propre, et c’est de là que vient cette version : le paquet n’en enregistre aucune, et il s’agit d’une chaîne à l’intérieur du binaire compilé plutôt que d’un fichier que ce site a distribué. La licence de libaom est BSD à 2 clauses, copyright (c) 2016 l’Alliance for Open Media, et elle vient avec une licence de brevets séparée, si bien que les deux sont servies ici depuis le projet en amont, à l’étiquette que rapportent les binaires : la licence de libaom et l’AOMedia Patent License 1.0. D’où vient chaque fichier, la date à laquelle il a été lu et son SHA-256 sont dans l’inventaire ci-dessous.
Redimensionnement : @jsquash/resize 2.1.1
Trois ports Rust distincts, chacun avec sa propre licence. L’outil utilise le premier par défaut.
| Bibliothèque | En amont | Version | Licence |
|---|---|---|---|
| resize (lanczos3, le réglage par défaut) | PistonDevelopers/resize | v0.3.0 |
MIT, Copyright (c) 2015 PistonDevelopers |
| hqx | CryZe/wasmboy-rs | v0.1.2 |
Apache License 2.0 |
| magic-kernel | SevInf/magic-kernel-rust | v0.1.0 |
MIT, Copyright (c) 2024 Serhii Tatarintsev |
D’où viennent ces fichiers
Les modules sont intégrés aux fichiers propres de ce site et téléchargés depuis ce site la première fois que vous utilisez leur format. Aucun codec n’est téléchargé ailleurs, et rien de votre image n’est envoyé à un serveur.
Le code propre à ce site
L’interface que vous utilisez, le changement de langue, les données structurées dans le code source de la page et la compilation qui dessine les figures et les cartes sociales sont le code propre de ce site, conservé dans le même dépôt que l’outil lui-même. Les listes ci-dessus sont le seul logiciel tiers que ce site envoie à un navigateur.
Comment cette liste a été vérifiée
Chaque version ci-dessus a été lue dans le paquet installé que ce site construit, et chaque fichier de licence ci-dessus est servi tel quel depuis ce site plutôt que paraphrasé. L’inventaire complet, avec le SHA-256 de chaque fichier WebAssembly, l’endroit exact où chaque version et chaque licence a été lue, et les trois mentions qu’il a fallu aller chercher en amont parce que le paquet n’en fournit aucune, est conservé dans le dépôt de ce site aux côtés de ces pages.
Là où la preuve s’arrête, cette page s’arrête aussi. Trois choses sont énoncées plutôt que résolues : la version en amont du module JPEG n’est enregistrée nulle part dans le paquet, le readme du module PNG et la mention qu’il distribue sont en désaccord sur la licence, et la version du codec AV1 qu’utilisent les modules AVIF n’est connue que par une chaîne à l’intérieur du binaire compilé.