Adopts the three SDK families convention documented in
fai/platform/docs/architecture/sdks.md: each base SDK
(module, plugin, client) gets a language suffix on dir + repo
so polyglot variants can be added later without renaming.
fai_studio_plugin_sdk → fai_plugin_sdk_rust
fai-studio-plugin-sdk → fai-plugin-sdk
fai/studio-plugin-sdk → fai/plugin-sdk-rust
Signed-off-by: flemming-it <sf@flemming.it>
First release of the SDK that Studio plugins depend on.
What v0.1 ships:
- WIT contract under wit/ (studio-plugin.wit +
deps/platform/world.wit, both verbatim from
fai/platform/wit/).
- wit-bindgen 0.36 generate! call with pub_export_macro
enabled so the emitted __export_studio_plugin_impl! macro
is reachable from downstream plugin crates.
- export_plugin!(MyType) convenience macro that wraps the
bindgen-generated impl macro.
- README documenting usage + v0.1 limits (single-world ->
all-three-hooks-required, no proc-macro yet, edition
2021 pinned by wit-bindgen output).
What v0.1 doesn't yet do:
- Plugins still declare all three Guest impls (theme,
translate, output-view). v0.2 splits the WIT into one
world per hook.
- No #[plugin(...)] proc-macro. v0.2 wraps generate! +
Guest impl generation into a single attribute.
- Host-side: the hub doesn't yet load studio-plugin-world
components or expose InvokePlugin RPC — that's the next
push.
Validated against the in-tree studio-theme-solarized
plugin: 22 KiB stripped .wasm artefact, valid Component
Model, passes wasm-tools component wit inspection.
Signed-off-by: flemming-it <sf@flemming.it>