HTTP transport to the Kdenlive scripting fork — the JVM boundary.
Strata: Pure routes/request (kdenlive.routes, portable) Port IKdenlive — call a catalog route, get data back Boundary HttpKdenlive — java.net.http, JSON wire Seam kdenlive — read at call time; rebind in tests
The wire encoding is JSON; requests carry the route's :body as the JSON object and responses are decoded to Clojure data with keyword keys.
HTTP transport to the Kdenlive scripting fork — the JVM boundary. Strata: Pure routes/request (kdenlive.routes, portable) Port IKdenlive — call a catalog route, get data back Boundary HttpKdenlive — java.net.http, JSON wire Seam *kdenlive* — read at call time; rebind in tests The wire encoding is JSON; requests carry the route's :body as the JSON object and responses are decoded to Clojure data with keyword keys.
The :document transport: IKdenlive over a project file, with no Kdenlive.
http-kdenlive sends a catalog route to the scripting fork. This adapter
answers the same route ids against a timeline kept on disk as EDN
(hive-kdenlive.mlt.timeline), and after every edit writes the MLT document
melt renders beside it:
edit.hkd.edn the timeline, the source of truth edit.mlt its MLT rendering, rewritten on every change
:render/start renders that document with melt. Media is probed with
melt <file> -consumer xml, the same engine the render uses, so a length
the timeline trusts is a length the render will agree with.
Routes with no meaning off a running application (playback, render jobs) answer :document/unsupported-route, naming the routes that are supported.
The :document transport: IKdenlive over a project file, with no Kdenlive. `http-kdenlive` sends a catalog route to the scripting fork. This adapter answers the same route ids against a timeline kept on disk as EDN (hive-kdenlive.mlt.timeline), and after every edit writes the MLT document melt renders beside it: edit.hkd.edn the timeline, the source of truth edit.mlt its MLT rendering, rewritten on every change :render/start renders that document with melt. Media is probed with `melt <file> -consumer xml`, the same engine the render uses, so a length the timeline trusts is a length the render will agree with. Routes with no meaning off a running application (playback, render jobs) answer :document/unsupported-route, naming the routes that are supported.
Route catalog for the Kdenlive scripting fork's HTTP transport — pure data.
The catalog is the single source: each route names its id, HTTP method, path template, and required/optional params. The client boundary walks this data; adding an endpoint is a catalog entry, never new client code.
Portable: core + string only.
Route catalog for the Kdenlive scripting fork's HTTP transport — pure data. The catalog is the single source: each route names its id, HTTP method, path template, and required/optional params. The client boundary walks this data; adding an endpoint is a catalog entry, never new client code. Portable: core + string only.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |