Files
OneCAD-Draft/plugins/README.md
T

39 lines
1.5 KiB
Markdown

# Plugin registry
`registry.json` is the curated list of third-party plugins Open CAD Studio
offers in its **Plugin Manager → marketplace**. The app fetches it from this
repo's `main` branch at runtime, so adding an entry makes a plugin discoverable
to every user without an app update.
## Add your plugin
Open a pull request adding one object to the array in
[`registry.json`](registry.json):
```json
{
"repo": "your-account/your-plugin-repo",
"name": "Human-readable name",
"description": "One line describing what it does."
}
```
Requirements for the linked repo:
- Builds a `cdylib` against [`ocs_plugin_api`](../crates/ocs_plugin_api) and
exports the host symbols via `ocs_plugin_api::export_plugin!`.
- Publishes per-platform binaries plus `plugin.toml` as **GitHub Release**
assets (see [opencad-example-plugin](https://github.com/HakanSeven12/opencad-example-plugin)
and its release workflow for a template). Asset names carry the platform, e.g.
`your.plugin-linux-x86_64.so`, `…-windows-x86_64.dll`, `…-macos-aarch64.dylib`.
- `plugin.toml` declares an `api_version` compatible with the host (3 or
newer). From API 4 on it must also carry the `rustc_version` and
`acadrust_source` the library was built with; the host loads it only when
both match its own build.
The host reads the release matching the user's platform, checks the API
version, and installs it into the user's plugins folder.
> Listing is curation, not endorsement or a security review. Installing a
> plugin runs its native code; users install at their own risk.