3个版本

0.1.6 2024年8月14日
0.1.5 2024年8月14日
0.1.4 2024年7月16日

184操作系统

Download history 88/week @ 2024-07-12 16/week @ 2024-07-19 1/week @ 2024-07-26 182/week @ 2024-08-09

每月 208 下载

GPL-3.0 许可证

17KB
212 代码行

libspkg

Spkg Rust库

使用场景

libspkg可用于Spkg插件。这也是libspkg的主要方面。还有binpkg,但目前仅推荐与spkg一起使用。

Spkg插件

use libspkg::plugin::{Plugin, PluginProperties};
pub struct ExamplePlugin;

impl Plugin for ExamplePlugin {
     fn execute(&self, args: &[String]) {
         match args.first().unwrap().as_str() {
             "test" => {
                 println!("Example spkg plugin")
             },
             _ => self.help()
         }
     }

     fn help(&self) {
         println!("Example help message")
     }
 }

#[allow(improper_ctypes_definitions)]
#[no_mangle]
pub extern "C" fn create_plugin() -> (Box<dyn Plugin>, PluginProperties) {
    let properties: PluginProperties = PluginProperties {
        name: "Example Plugin",
        id: "example-plugin",
        package_id: "com.example.exampleplugin",
        version: env!("CARGO_PKG_VERSION"),
        library_version: libspkg::VERSION,
    };

    (Box::new(ExamplePlugin), properties)
}

依赖

~0–9.5MB
~92K SLoC