第三方许可证
Deduplo 建立在大量优秀的开源工作之上。我们发布的每一个组件及其所附带的许可证都列在这里。
最后更新:2026 年 9 月 14 日
同一份列表连同每个组件的完整许可证文本,可在应用内的 设置 ▸ 许可证 ▸ 第三方许可证查看。Deduplo 本身是专有软件;下列组件仍受其各自条款约束,我们的 服务条款 中没有任何内容限制你在这些条款下的权利。
核心组件
| 组件 | 许可证 | 在这里的作用 |
|---|---|---|
| Qt for Python (PySide6-Essentials) | LGPL-3.0 | 整个用户界面 |
| shiboken6 | LGPL-3.0 | PySide6 所依赖的绑定层 |
| Pillow | MIT-CMU | 读取图像、缩略图、哈希 |
| NumPy | BSD-3-Clause | 图像指纹与快速匹配 |
| Send2Trash | BSD-3-Clause | 可恢复地删除到回收站 |
| SQLCipher (via sqlcipher3-wheels) | BSD-3-Clause (SQLCipher) / zlib (wrapper) | 加密磁盘上的扫描缓存 |
OpenSSL 3(静态链接在 sqlcipher3 的 _sqlite3.cp3xx 扩展内) | Apache-2.0 | SQLCipher 用于加密的密码算法 |
| SQLite (sqlite3.dll) | Public domain | 缓存数据库的格式 |
| Python (python3.dll / python3xx.dll) | PSF-2.0 | 运行时 |
| typing_extensions | PSF-2.0 | 上述若干库所依赖的类型注解 |
| setuptools | MIT | 随 cffi、py7zr 和打包器的启动钩子一起到来;Deduplo 从不调用它 |
| packaging | Apache-2.0 / BSD-2-Clause | 随 setuptools 一起到来;Deduplo 从不调用它 |
| tomli | MIT | 随 setuptools 一起到来;Deduplo 从不调用它 |
| PyYAML | MIT | 随 NumPy 和 watchdog 一起到来;Deduplo 从不调用它 |
| charset-normalizer | MIT | 随 NumPy 一起到来;Deduplo 从不调用它 |
| defusedxml | PSF-2.0 | 更安全的 XML 解析,通过 Pillow 和 openpyxl 使用 |
可选组件
它们启用额外的格式和功能。没有其中任何一个,Deduplo 也能运行,只是相应能力会缺失。
| 组件 | 许可证 | 在这里的作用 |
|---|---|---|
| OpenCV | Apache-2.0 | 视频帧、AI 相似度匹配 |
| FFmpeg(捆绑在 OpenCV 内) | LGPL-2.1 | 解码 OpenCV 打开的视频文件 |
| LibRaw (via rawpy) | LGPL-2.1 / CDDL-1.0 | 相机 RAW 解码(NEF、CR2、CR3、ARW、DNG、RAF…) |
| libheif + libde265 (via pi-heif) | LGPL-3.0 | iPhone 的 .heic / .heif 照片(仅解码) |
| psutil | BSD-3-Clause | 扫描期间 CPU / 内存 / 磁盘的实时读数 |
| watchdog | Apache-2.0 | 实时文件夹监视 |
| tinytag | MIT | 读取音频标签 |
| libsndfile (via SoundFile) | LGPL-2.1 | 用于声学指纹的音频解码 |
| cffi | MIT-0 | SoundFile 调用 libsndfile 所经由的桥梁 |
| pycparser | BSD-3-Clause | 由 cffi 使用 |
| PDFium (via pypdfium2) | BSD-3-Clause / Apache-2.0 | 从 PDF 提取文本 |
| python-docx | MIT | 从 .docx 提取文本 |
| lxml | BSD-3-Clause | 为 python-docx 解析 XML |
| openpyxl | MIT | 从 .xlsx 提取文本 |
| et_xmlfile | MIT | 为 openpyxl 处理 XML |
| py7zr | LGPL-2.1-or-later | 读取 .7z 压缩包内部 |
| pybcj | LGPL-2.1-or-later | .7z 压缩包内的 BCJ 过滤器 |
| pyppmd | LGPL-2.1-or-later | .7z 压缩包内的 PPMd 解压 |
| inflate64 | LGPL-2.1-or-later | .7z 和 .zip 压缩包内的 Deflate64 解压 |
| multivolumefile | LGPL-2.1-or-later | 多卷 .7z 压缩包 |
| pycryptodomex | BSD / Public domain | 受密码保护的 .7z 压缩包 |
| brotli | MIT | .7z 压缩包内的 Brotli 压缩条目 |
| texttable | MIT | 随 py7zr 一起到来;Deduplo 从不调用它 |
运行时库
与上述组件一同发布,这是构建它们的编译器和解释器所要求的。它们不是 Python 包,因此这里按文件名列出。
| 库 | 许可证 | 存在的原因 |
|---|---|---|
| GNU libstdc++ (libstdc++-6.dll, MinGW-w64) | GPL-3.0-or-later WITH GCC Runtime Library Exception | 构建 libheif 和 libde265 所用的 C++ 运行时 |
| GCC support library (libgcc_s_seh-1.dll) | GPL-3.0-or-later WITH GCC Runtime Library Exception | 同一构建,同样的原因 |
| mingw-w64 winpthreads (libwinpthread-1.dll) | MIT / BSD-3-Clause | 同一构建,同样的原因 |
| Microsoft Visual C++ Runtime (VCRUNTIME140*.dll, MSVCP140*.dll) | Microsoft 可再发行组件许可证 | 构建 Python 和大多数 wheel 所用的运行时 |
字体
Deduplo 的界面使用 Rasmus Andersson 设计的 Inter , 许可证为 SIL Open Font License 1.1。本网站使用系统自带字体,不加载任何自己的字体。
Deduplo 刻意不发布任何纯 GPL 许可的内容。当某个方便的库采用 GPL 许可时,我们改选宽松许可或仅解码的替代方案,这样此列表中没有任何部分会给作为用户的你带来义务。上面的两个 GCC 运行时库带有 GCC Runtime Library Exception,正是它允许在本条款下的程序中使用它们。
LGPL 组件
Qt(PySide6-Essentials 和 shiboken6)、LibRaw、libheif、libde265、libsndfile、随 OpenCV 捆绑的 FFmpeg 构建,以及 7z 栈——py7zr、pybcj、pyppmd、inflate64 和 multivolumefile——均在 LGPL 下使用,未经修改,作为可单独替换的文件(共享库,或对纯 Python 的组件而言是 Python 模块)。如果你需要用于将 Deduplo 与其中任何一个的修改版本重新链接的目标文件,请写信至 [email protected] ,我们会提供。
更正
如果你认为本页面遗漏了某个组件或归属有误,请通过 [email protected] 告诉我们,我们会修正。