Skip to content

RtopRS/RtopDev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rtop Dev

Made with Rust Use git

Developement librairy for making Rtop's Plugin

Quick Example

Rtop let you create plugin for adding custom widgets. Firstly, create a new project:

cargo new --lib MyPlugin

After that, update your Cargo.toml file. It should look like that:

[package]
name = "my_plugin"
version = "0.1.0"
edition = "2021"

[dependencies]
rtop_dev = "^1.1.0"

[lib]
name = "my_plugin"
crate-type = ["cdylib"]

Then, edit your src/lib.rs to have somethings like this:

struct FooWidget {}

impl rtop_dev::widget::Widget for FooWidget {
    fn display(&mut self, _height: i32, _width: i32) -> String {
        String::from("Hello World RTop!")
    }
}

#[no_mangle]
pub extern "Rust" fn init_foo() -> (Box<dyn rtop_dev::plugin::Plugin>, bool) {
    (Box::new(FooWidget{}), false)
}

To build your lib, simply run:

cargo build --lib --release

Your plugin should be located here target/release/libmy_plugin.so.

Remember these things, For each widget you want to create, you must make a function called init_{WIDGET} which return a Box<dyn rtop_dev::plugin::Plugin and a bool that defines if your widget should receive input from the user or not. Don't forget to add #[no_mangle] in front of each init function. Otherwise, it will not be exported

Contributors

SquitchYT

License

RTop | Mozilla Public License 2.0

About

Development library to create a plugin for RtopRS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages