JavaScript Plugin Loader
Loads TurboDL plugins written in JavaScript. One QuickJS runtime and context per script, a stable `host`/`plugin` ABI, and a load/unload sequence that never closes a runtime while its script is still executing.
Manifest
| Field | Value |
|---|---|
| Id | loader.js |
| Category | turbodl-loader |
| Protocols | — |
| Capabilities | dev.turbodl.cap.js dev.turbodl.cap.quickjs |
| Artifact | dev.turbodl:turbo-plugin-js:0.2.2.0 |
| API version | 1.0.0 |
| Source | turbo-plugin-js |
| Manifest | turbodl-plugin.json |
Explicitly refused
- Registering a `DownloadBackend` (the byte plane stays in Kotlin)
- Publishing a service (a service is a Kotlin object graph)
- `require` / npm / `fetch` — the host ABI is the entire surface
- `jar:` or remote script sources (local file / `inline:` / `data:` only, for now)
A script computes URLs, headers and signatures; it never streams download data. That boundary is what keeps a script from becoming a bandwidth bottleneck.
Source
Read it in the repository — the manifest above is generated from the file itself.