Crate quick_js[−][src]
quick-js is a a Rust wrapper for QuickJS, a new Javascript engine by Fabrice Bellard.
It enables easy and straight-forward execution of modern Javascript from Rust.
Limitations
- Windows is not supported yet
Quickstart:
use quick_js::{Context, JsValue}; let context = Context::new().unwrap(); // Eval. let value = context.eval("1 + 2").unwrap(); assert_eq!(value, JsValue::Int(3)); let value = context.eval_as::<String>(" var x = 100 + 250; x.toString() ").unwrap(); assert_eq!(&value, "350"); // Callbacks. context.add_callback("myCallback", |a: i32, b: i32| a + b).unwrap(); context.eval(r#" // x will equal 30 var x = myCallback(10, 20); "#).unwrap();
Modules
console | Javascript console integration. See the ConsoleBackend trait for more info. |
Structs
Arguments | A wrapper around Vec |
BigInt | A value holding JavaScript BigInt type |
Context | Context is a wrapper around a QuickJS Javascript context. It is the primary way to interact with the runtime. |
ContextBuilder | A builder for Context. |
Enums
ContextError | Error on context creation. |
ExecutionError | Error on Javascript execution. |
JsValue | A value that can be (de)serialized to/from the quickjs runtime. |
ValueError | Error during value conversion. |
Traits
Callback | The Callback trait is implemented for functions/closures that can be used as callbacks in the JS runtime. |