This repository contains the runtime plugin crates that live alongside augur-rs.
The canonical host/runtime contract now lives upstream in:
Use this repository for the plugin implementations, template crate, and repo-local contributor docs.
- Each plugin ships as a
plugin.tomlmanifest plus one platform library (.dylib,.so, or.dll). augur-guidiscovers plugins from~/.augur/plugins/, loads the exportedaugur_plugin_vtable, and renders settings, status, and host views through the host.- Host-owned built-in tools stay in
augur-gui; they are not runtime plugins in this repository. - Host-owned experiment settings such as pixel scale, sensor geometry, acquisition time, and EventStore budget are published to plugins as
GlobalSettingsonaugur.global_settings. - Standard shared scientific payloads can also live in companion crates such as
augur-plugin-types.
The plugin crates under plugins/ are under active development and not yet ready for external use. The template crate and documentation are stable references for writing your own plugins.
| Plugin | Phase | Notes |
|---|---|---|
localization |
RawEvents |
Wavelet/Gaussian SMLM localization and standard LocalizationResults output |
reconstruction |
DerivedData |
Accumulated localization table plus host-rendered reconstruction windows |
focus-metrics |
DerivedData |
Focus metrics from localization results or FFT preview sharpness |
evesmlm-candidates |
RawEvents |
Event-domain candidate clustering for eveSMLM |
evesmlm-fitting |
DerivedData |
Candidate fitting plus EVE and compatibility localization outputs |
evesmlm-postproc |
DerivedData |
Filtering, drift correction, evaluation, and the later EVE compact view provider |
plugin-template/ is the starting point for new plugin crates.
cargo build -p augur-plugin-localization --releasemkdir -p ~/.augur/plugins/localization
cp plugins/localization/plugin.toml ~/.augur/plugins/localization/
cp target/release/libaugur_plugin_localization.dylib ~/.augur/plugins/localization/On Linux, copy the .so. On Windows, copy the .dll.
Then open augur-gui, go to Plugins, click Scan for New Plugins, and enable the plugin.
./scripts/build-runtime-plugins.sh --profile release./scripts/install-built-plugins.sh --profile releaseCARGO_NET_GIT_FETCH_WITH_CLI=true cargo build \
-p augur-plugin-evesmlm-candidates \
-p augur-plugin-evesmlm-fitting \
-p augur-plugin-evesmlm-postproc \
--releaseStart from the template:
cp -r plugin-template plugins/my-pluginThe current authoring flow is:
- implement
augur_plugin_api::Plugin - export the vtable with
export_plugin! - choose
input_kind()and optionalPluginCapabilities - use
HostContextfor shared payloads, companion crates such asaugur-plugin-typesfor reusable payload types, andCTX_GLOBAL_SETTINGSfor host-owned calibration/settings - declare host-rendered outputs with
host_views()when needed - build a
cdylib - install
plugin.tomlplus the compiled library into~/.augur/plugins/<name>/
For the full contract, read the upstream authoring guide. For repo-local workflow and conventions, see CONTRIBUTING.md, docs/plugin-api.md, and docs/installing-plugins.md.
augur-plugins/
├── plugins/
├── plugin-template/
├── docs/
├── scripts/
├── CONTRIBUTING.md
└── README.md
- Plugin API Notes — repo-local summary of the current runtime contract
- Installing Plugins — build, copy, reload, and troubleshoot installed plugins
- Architecture Notes — repository role, execution model, host views, and shared settings
- augur-rs Plugin Authoring Guide — canonical host/runtime authoring guide
- augur-rs Global Settings Guide — host-owned settings published to plugins
