A low-ish level tool for easily hosting WASM based plugins.
The goal of wasm_plugin is to make communicating across the host-plugin boundary as simple and idiomatic as possible while being unopinionated about how you actually use the plugin.
Plugins should be written using wasm_plugin_guest
Loading a plugin is as simple as reading the .wasm file off disk.
let mut plugin = from_file?.finish?;
Calling functions exported by the plugin takes one of two forms. Either the function takes no arguments and returns a single serde deserializable value:
let response: ResultType = plugin.call_function?;
Or it takes a single serializable argument and returns a single result:
let message = default;
let response: ResultType = plugin.call_function_with_argument?;
API Stability
I am not currently guaranteeing any stability, expect all releases to include breaking changes.