第三方组件与致谢

TurboDL 会连带引入哪些库、各自什么协议,以及哪些项目提供了思路(但没有提供代码)。

docs/i18n/legal/THIRD-PARTY_zh-CN.md在 GitHub 上查看原文下载

TurboDL 自己的代码是 MIT 协议(见 LICENSE)。 这份文件把别人的东西列清楚:用到了哪些第三方库、它们的许可、以及哪些是想法的来源。

有这份清单的理由很实际:你要把 TurboDL 集成进自己的产品时,需要知道会连带引入什么。

运行时依赖#

这些会随你的应用一起发布,它们的许可都是宽松的(Apache-2.0 / MIT), 与闭源商业集成不冲突。

组件版本许可用在哪
Kotlin 标准库2.0.21 工具链Apache-2.0全项目语言与标准库
kotlinx.coroutines1.9.0Apache-2.0并发调度、事件流
OkHttp4.12.0Apache-2.0HTTP 传输、连接复用
Okio随 OkHttpApache-2.0OkHttp 的 I/O 基础(间接依赖)
quickjs-kt1.0.15Apache-2.0JS 引擎的 Kotlin/JVM 绑定
QuickJS随 quickjs-kt 打包MITJS 引擎本体(Fabrice Bellard)

只有 turbodl-core 是必需的。turbo-plugin-* 与 turbodl-cli 按需引入:

  • turbo-plugin-js 才引入 quickjs-kt 与 QuickJS 的原生库。不用 JS 插件就不会带上它们。
  • turbo-plugin-hls、turbo-plugin-bootstrap 只依赖 core 与 runtime,不引入额外第三方库。

构建期工具#

只在开发与 CI 里出现,不进你的产物:Gradle、Kotlin 编译器、 kotlin-test 与 kotlinx-coroutines-test(测试用,Apache-2.0)。

思路来源(无代码引用)#

TurboDL 的引擎设计参考了几个成熟开源下载器的做法 —— 分片调度、连接复用、 限速与重试这些问题的解法在业界已经很成熟,值得学习。这些项目是:

aria2、 Xtreme Download Manager、 axel、 Persepolis、 Motrix、 ab-download-manager。

没有复制它们的任何源代码,因此也不承担其许可的传染性义务; 本清单是致谢,不是许可声明。也不暗示这些项目对 TurboDL 有任何背书。

这段说明同时写在 LICENSE 的附加条款第 3 条里,两处一致。

如果你要再分发#

  • TurboDL 自身的代码:保留 LICENSE 里的版权与许可声明即可(MIT)。
  • 上面的运行时依赖:保留各自的许可与版权声明。用 Gradle 的原生依赖管理不会漏掉这一步; 如果你把依赖 shade 成一个 fat JAR,请把它们的许可文件一并带上。
  • 插件:本仓库的插件随本仓库一起授权;仓库之外的插件由各自作者决定,与本项目无关。

← 全部文档