文档
下面每一页都是仓库里的一个文件,官网与 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 生成。
协议与说明
架构
这个项目的每个设计问题都由三条规则决定:
- core 能独立工作。turbodl-core 是完整引擎、零插件依赖;插件是纯粹的增量。
- 内核只是机制。它不认识任何协议 —— 只有生命周期、清理、事件总线、服务注册表、扩展点、版本握手、诊断。
- 依赖方向是硬的。runtime → core,绝不反向。