2 releases
Uses old Rust 2015
0.3.1 | Mar 11, 2021 |
---|---|
0.3.0 | Mar 11, 2021 |
#2250 in Development tools
15KB
178 lines
Rust modules support for Wilton JavaScript runtime
This library allows to write Wilton native modules in Rust.
License information
This project is released under the Apache License 2.0.
Changelog
2021-03-10
- version
0.3.1
- package rename to
wilton_rusty
- fix new compiler warnings
- wilton URL changes in docs
2018-04-14
- version
0.2.0
- support backcalls to JS
2018-03-14
- version
0.1.0
- initial public version
lib.rs
:
Rust modules support for Wilton JavaScript runtime
Usage example:
// configure Cargo to build a shared library
//[lib]
//crate-type = ["dylib"]
// in lib.rs, import serde and wilton_rusty
//#[macro_use]
//extern crate serde_derive;
//extern crate wilton_rusty;
// ...
// declare input/output structs
#[derive(Deserialize)]
struct MyIn { }
#[derive(Serialize)]
struct MyOut { }
// write a function that does some work
fn hello(obj: MyIn) -> MyOut { }
// register that function inside the `wilton_module_init` function,
// that will be called by Wilton during the Rust module load
#[no_mangle]
pub extern "C" fn wilton_module_init() -> *mut std::os::raw::c_char {
// register a call, error checking omitted
wilton_rusty::register_wiltocall("hello", |obj: MyIn| { hello(obj) });
// return success status to Wilton
wilton_rusty::create_wilton_error(None)
}
See an example how to load and use Rust library from JavaScript.
Dependencies
~0.5–1MB
~20K SLoC