zerolaunch-plugin-sdk-rust 0.2.0

Rust SDK for writing ZeroLaunch third-party plugins.
Documentation

zerolaunch-plugin-sdk-rust

Rust SDK for writing ZeroLaunch third-party plugins.

Usage

use async_trait::async_trait;
use zerolaunch_plugin_sdk_rust::run;
use zerolaunch_plugin_api::*;

struct MyPlugin;

#[async_trait]
impl Configurable for MyPlugin { /* ... */ }

#[async_trait]
impl Plugin for MyPlugin {
    async fn init(&self, ctx: &PluginContext, handle: Option<Arc<PluginHandle>>) -> Result<(), PluginError> { Ok(()) }
    async fn query(&self, ctx: &PluginContext, query: &Query) -> Result<QueryResponse, PluginError> { /* ... */ }
    async fn execute_action(&self, ctx: &PluginContext, action_id: &str, payload: serde_json::Value) -> Result<(), PluginError> { /* ... */ }
}

fn main() {
    run(MyPlugin)
}

What the SDK does

  • Reads LSP-framed JSON-RPC messages from stdin
  • Dispatches plugin/* methods to your Plugin trait implementation
  • Writes JSON-RPC responses to stdout
  • Handles plugin/initialize, plugin/get_components, plugin/query, plugin/execute_action, plugin/get_settings, plugin/apply_settings, plugin/validate_settings, plugin/config_actions, plugin/execute_config_action

HostProxy

For calling host-side APIs from your plugin:

use zerolaunch_plugin_sdk_rust::HostProxy;
let host = HostProxy::new();
host.log("info", "Hello from plugin!")?;
host.shell_open("notepad.exe")?;