metacall 0.1.2

Call NodeJS, TypeScript, Python, C#, Ruby... functions from Rust (a Rust Port for MetaCall).
Documentation

Abstract

METACALL is a library that allows calling functions, methods or procedures between programming languages. With METACALL you can transparently execute code from / to any programming language, for example, call TypeScript code from Rust.

Install

Install MetaCall binaries first (click here for additional info about the install script):

bash <(curl -sL https://raw.githubusercontent.com/metacall/install/master/install.sh)

Example

sum.ts

export function sum(a: number, b: number): number {
	return a + b;
}

main.rs

fn main() {
	let _d = defer(|| metacall::destroy());

	match metacall::initialize() {
		Err(e) => { println!("{}", e); panic!(); },
		_ => { println!("MetaCall initialized") }
	}

	let scripts : Vec<String> = vec!["sum.ts".to_string()];

	match metacall::load_from_file("ts".to_string(), scripts) {
		Err(e) => { println!("{}", e); panic!(); },
		_ => ()
	}

	match metacall::metacall("sum".to_string(),
							vec![
								metacall::Any::Double(1.0),
								metacall::Any::Double(2.0)
								])
	{
		Err(e) => { println!("{}", e); panic!(); },
		Ok(ret) => { println!("{:?}", ret); }
	}
}