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, used for vararg callbacks.

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.