1
0
Fork 0
forked from hanez/xtc
xtc/docs/PLUGIN_HOSTING.md

1.7 KiB

External plugin hosting evaluation

Decision: defer external hosting after Phase 9. The native source API is useful for proving processor contracts without adding an SDK or scanning/loading code.

Candidate Benefits Work required before adoption
LV2 Open specifications, established Linux hosts/plugins RDF discovery and feature negotiation, URIDs, state, UI lifetime, worker requests and event mapping; likely additional discovery dependency
CLAP C ABI, explicit lifecycle and event model Extension negotiation, parameter/state persistence, host callbacks, main/audio-thread scheduling and UI integration
VST3 Broad plugin availability SDK/license review for the selected SDK release, C++ adapter outside the C core, component/controller and editor lifecycle, state and event translation

No candidate was linked, scanned or loaded in this phase. API/SDK and plugin licenses must be checked at the revision actually adopted; they are separate from xtc's MIT license. Supporting a format does not grant redistribution rights to individual plugins. Do not search user plugin directories from the callback.

Before implementation, require versioned module identity and state, a missing- plugin recovery policy, preparation failure/partial cleanup tests, bounded events and parameter publication, latency/tail handling, callback-safe unload after retirement, a GUI/main-thread boundary and an explicit crash-containment decision. Native ABI tests cover some ownership mechanics but do not prove third-party code safe. Event graph ports and custom-instrument GUI selection remain gaps. Choose one format with concrete user needs after those contracts are specified; do not introduce a general multi-format framework now. See decision 0008.