文档

下面每一页都是仓库里的一个文件,官网与 GitHub 读的是同一份源 —— 所以两边不会各说各话。每页都留了原文入口,想拿原始文件随时可以拿。

从这三页开始

全部通过三样东西完成:一个依赖、一个配置对象、一次提交。暂停、继续、取消、批量与诊断都在同一个 client 上。

Kotlin
// build.gradle.kts
dependencies {
    implementation("dev.turbodl:turbodl-core:0.2.2.0")
}

// Kotlin
val client = TurboClient(TurboConfig(maxConnectionsPerTask = 16))
val id = client.submit(DownloadRequest(url, File("out.bin")))
val result = client.await(id)
shell
java -jar turbodl-cli-0.2.2.0-all.jar <url> -o out.bin -c 64
java -jar turbodl-cli-0.2.2.0-all.jar <url> --json       # NDJSON
java -jar turbodl-cli-0.2.2.0-all.jar --batch tasks.txt  # one URL per line

文档

项目说明

TurboDL 是什么、能做什么、怎么加进项目、API 有哪些 —— 就是仓库里的那篇 README。

插件开发指南

怎么写出一个插件、怎么被加载进来:接口、分类,以及你必须遵守的生命周期。

开发规范

兼容性规则:什么算稳定 API、版本怎么协商、命名怎么定,以及插件不能弯的安全底线。

发布与发现

没有需要注册的中心仓库。插件靠 GitHub topic 加一份清单被发现 —— 这套约定就是全部。

用 JavaScript 写插件

`host`/`plugin` ABI、构成一切的那三个原语,以及脚本被有意禁止做的事情。

JS 加载器架构

加载器为什么长这样:runtime 与 context 的归属、卸载顺序,以及宿主一侧的边界。

清单字段参考

turbodl-plugin.json 的每一个字段 —— 由校验它的那份 JSON Schema 生成。

协议与说明

开源协议(MIT)

MIT 协议,附四条澄清插件是独立作品的追加条款。原文照录,不做概括。

第三方组件与致谢

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

隐私说明

用 TurboDL 的时候,哪些数据会离开你的机器;以及那些永远不会离开的东西。

使用条款

责任、担保、第三方插件与名称使用 —— 协议本身不会展开讲的那部分。

架构

这个项目的每个设计问题都由三条规则决定:

  1. core 能独立工作。turbodl-core 是完整引擎、零插件依赖;插件是纯粹的增量。
  2. 内核只是机制。它不认识任何协议 —— 只有生命周期、清理、事件总线、服务注册表、扩展点、版本握手、诊断。
  3. 依赖方向是硬的。runtime → core,绝不反向。