Documentation
Every page below is a file in the repository, rendered here from the same source — so what you read here and what you find on GitHub cannot drift apart. Each page also links to its original, in case you want the raw text.
Start here
The whole thing is one dependency, one config object, one submit call. Pause, resume, cancel, batch and diagnostics are on the same client.
// 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)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 lineDocumentation
Project README
What TurboDL is, what it does, how to add it to a project, and the API surface — the repository's own README.
Plugin authoring guide
How to write a plugin and get it loaded: the interfaces, the categories, and the lifecycle you must respect.
Development convention
The compatibility rulebook: what counts as a stable API, how versions are negotiated, naming, and the safety rules a plugin may not bend.
Publishing & discovery
There is no registry to sign up to. Plugins are discovered through a GitHub topic plus a manifest — this is the whole convention.
Writing a JavaScript plugin
The `host`/`plugin` ABI, the three primitives everything is built on, and what a script is deliberately not allowed to do.
JS loader architecture
Why the loader is shaped the way it is: runtime/context ownership, the unload sequence, and the host-side boundaries.
Manifest reference
Every field of turbodl-plugin.json, generated from the JSON Schema that validates it.
Terms & policies
License (MIT)
MIT, plus four supplemental clauses that keep plugins independent works. Verbatim, not summarised.
Third-party components
Which libraries ship with TurboDL, under what license, and which projects supplied ideas without supplying code.
Privacy
What leaves your machine when you use TurboDL — and the list of things that never do.
Terms of use
Responsibility, warranty, third-party plugins, and the name — the parts a license does not spell out.
Architecture
Three rules decide every design question in this project:
- core works alone. turbodl-core is a complete engine with zero plugin dependency; plugins are strictly additive.
- the kernel is only mechanism. It knows no protocol — lifecycle, cleanup, event bus, service registry, extension points, version handshake, diagnostics.
- dependency direction is strict. runtime → core, never the reverse.