#javascript #module #run-time #wilton

wilton_rust

Rust modules support for Wilton JavaScript runtime

2 unstable releases

Uses old Rust 2015

0.2.0 Apr 14, 2018
0.1.0 Mar 14, 2018

#2275 in Development tools

Apache-2.0

15KB
181 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

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_rust
#[macro_use]
extern crate serde_derive;
extern crate wilton_rust;
...
// 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_rust::register_wiltocall("hello", |obj: MyIn| { hello(obj) });
   // return success status to Wilton
   wilton_rust::create_wilton_error(None)
}

See an example how to load and use Rust library from JavaScript.

Dependencies

~355–760KB
~17K SLoC