# fai-studio-plugin-sdk # # Ergonomic wrapper around the WIT bindings declared in # `wit/studio-plugin.wit`. Studio plugins depend on this crate # rather than dealing with raw wit-bindgen output. v0.1 ships # WITHOUT the `#[plugin(...)]` proc-macro: plugins write the # `export!()` invocation themselves with the structs the SDK # provides. The macro lands in v0.2 once the contract is # stable enough. # # Build a plugin: # # cargo build --release --target wasm32-wasip2 # # Use: # # use fai_studio_plugin_sdk::{export_plugin, theme, ColorScheme, # PluginError}; # # struct MyTheme; # impl theme::Guest for MyTheme { # fn theme_for(brightness: String) # -> Result { # ... # } # } # # export_plugin!(MyTheme with_types_in fai_studio_plugin_sdk::bindings); [package] name = "fai-studio-plugin-sdk" version = "0.1.0" # edition 2021 for now — wit-bindgen 0.36 emits the older # `#[link_section]` / `unsafe`-attribute syntax that the # edition-2024 compiler rejects. Bump to 2024 when moving # to a wit-bindgen version with edition-2024-compatible # codegen. edition = "2021" authors = ["Dr. Stefan Flemming "] license = "Apache-2.0" publish = false description = "F∆I Studio Plugin SDK — Rust wrapper for the studio-plugin WIT" repository = "https://git.flemming.ai/fai/studio-plugin-sdk" rust-version = "1.85" [lib] crate-type = ["rlib"] [dependencies] wit-bindgen = "0.36" [package.metadata.component] package = "fai:studio-plugin-sdk" [package.metadata.component.target] path = "wit" world = "studio-plugin"