Fidius — a Rust plugin framework for trait-to-dylib plugin systems.
This is the facade crate. Interface crates should depend on fidius only.
It re-exports everything needed to define interfaces and implement plugins.
For interface crate authors
pub use fidius::{plugin_impl, PluginError};
#[fidius::plugin_interface(version = 1, buffer = PluginAllocated)]
pub trait MyPlugin: Send + Sync {
fn process(&self, input: String) -> String;
}
For plugin crate authors
use my_interface::{plugin_impl, MyPlugin, PluginError};
pub struct MyImpl;
#[plugin_impl(MyPlugin)]
impl MyPlugin for MyImpl {
fn process(&self, input: String) -> String {
format!("processed: {input}")
}
}
fidius::fidius_plugin_registry!();