Third-party licences
Deduplo stands on a lot of excellent open-source work. Every component we ship, and the licence it carries, is listed here.
Last updated: 14 September 2026
The same list, with the full licence text of each component, is available inside the application under Settings ▸ License ▸ Third-party licenses. Deduplo itself is proprietary software; the components below remain under their own terms, and nothing in our Terms of Service restricts your rights under them.
Core components
| Component | Licence | What it does here |
|---|---|---|
| Qt for Python (PySide6-Essentials) | LGPL-3.0 | The entire user interface |
| shiboken6 | LGPL-3.0 | The binding layer PySide6 runs on |
| Pillow | MIT-CMU | Reading images, thumbnails, hashing |
| NumPy | BSD-3-Clause | Image fingerprinting and fast matching |
| Send2Trash | BSD-3-Clause | Recoverable deletes to the Recycle Bin / Trash |
| SQLCipher (via sqlcipher3-wheels) | BSD-3-Clause (SQLCipher) / zlib (wrapper) | Encrypting the on-disk scan cache |
OpenSSL 3 (statically linked inside sqlcipher3's _sqlite3.cp3xx extension) | Apache-2.0 | The cipher SQLCipher encrypts with |
| SQLite (sqlite3.dll) | Public domain | The cache database format |
| Python (python3.dll / python3xx.dll) | PSF-2.0 | The runtime |
| typing_extensions | PSF-2.0 | Type annotations several of the libraries above rely on |
| setuptools | MIT | Arrives with cffi, py7zr and the packager's start-up hook; Deduplo never calls it |
| packaging | Apache-2.0 / BSD-2-Clause | Arrives with setuptools; Deduplo never calls it |
| tomli | MIT | Arrives with setuptools; Deduplo never calls it |
| PyYAML | MIT | Arrives with NumPy and watchdog; Deduplo never calls it |
| charset-normalizer | MIT | Arrives with NumPy; Deduplo never calls it |
| defusedxml | PSF-2.0 | Safer XML parsing, reached through Pillow and openpyxl |
Optional components
These enable extra formats and features. Deduplo runs without any of them, with the corresponding capability simply absent.
| Component | Licence | What it does here |
|---|---|---|
| OpenCV | Apache-2.0 | Video frames, AI-similar matching |
| FFmpeg (bundled inside OpenCV) | LGPL-2.1 | Decoding the video files OpenCV opens |
| LibRaw (via rawpy) | LGPL-2.1 / CDDL-1.0 | Camera RAW decoding (NEF, CR2, CR3, ARW, DNG, RAF…) |
| libheif + libde265 (via pi-heif) | LGPL-3.0 | iPhone .heic / .heif photos (decode only) |
| psutil | BSD-3-Clause | The live CPU / RAM / disk readout during a scan |
| watchdog | Apache-2.0 | Real-time folder watching |
| tinytag | MIT | Reading audio tags |
| libsndfile (via SoundFile) | LGPL-2.1 | Audio decoding for acoustic fingerprints |
| cffi | MIT-0 | The bridge SoundFile calls libsndfile through |
| pycparser | BSD-3-Clause | Used by cffi |
| PDFium (via pypdfium2) | BSD-3-Clause / Apache-2.0 | Text extraction from PDFs |
| python-docx | MIT | Text extraction from .docx |
| lxml | BSD-3-Clause | XML parsing for python-docx |
| openpyxl | MIT | Text extraction from .xlsx |
| et_xmlfile | MIT | XML handling for openpyxl |
| py7zr | LGPL-2.1-or-later | Reading inside .7z archives |
| pybcj | LGPL-2.1-or-later | BCJ filters inside .7z archives |
| pyppmd | LGPL-2.1-or-later | PPMd decompression inside .7z archives |
| inflate64 | LGPL-2.1-or-later | Deflate64 decompression inside .7z and .zip archives |
| multivolumefile | LGPL-2.1-or-later | Multi-volume .7z archives |
| pycryptodomex | BSD / Public domain | Password-protected .7z archives |
| brotli | MIT | Brotli-compressed entries inside .7z archives |
| texttable | MIT | Arrives with py7zr; Deduplo never calls it |
Runtime libraries
Shipped beside the components above, as the compilers and interpreter they were built with require. They are not Python packages, so each is named here by its file.
| Library | Licence | Why it is there |
|---|---|---|
| GNU libstdc++ (libstdc++-6.dll, MinGW-w64) | GPL-3.0-or-later WITH GCC Runtime Library Exception | The C++ runtime libheif and libde265 were built against |
| GCC support library (libgcc_s_seh-1.dll) | GPL-3.0-or-later WITH GCC Runtime Library Exception | Same build, same reason |
| mingw-w64 winpthreads (libwinpthread-1.dll) | MIT / BSD-3-Clause | Same build, same reason |
| Microsoft Visual C++ Runtime (VCRUNTIME140*.dll, MSVCP140*.dll) | Microsoft redistributable licence | The runtime Python and most of the wheels were built with |
Typeface
The Deduplo interface and this website use Inter by Rasmus Andersson, under the SIL Open Font License 1.1.
Deduplo deliberately ships nothing under the plain GPL. Where a convenient library was GPL-licensed we chose the permissive or decode-only alternative instead, so that no part of this list places obligations on you as a user. The two GCC runtime libraries above carry the GCC Runtime Library Exception, which is what permits their use in a program under these terms.
LGPL components
Qt (PySide6-Essentials and shiboken6), LibRaw, libheif, libde265, libsndfile, the FFmpeg build bundled with OpenCV, and the 7z stack — py7zr, pybcj, pyppmd, inflate64 and multivolumefile — are used under the LGPL, unmodified, as separately replaceable files (shared libraries, or Python modules for the pure-Python ones). If you would like the object files needed to relink Deduplo against a modified version of any of them, write to support@deduplo.com and we will provide them.
Corrections
If you believe a component is missing from this page or attributed incorrectly, please tell us at support@deduplo.com and we will fix it.