quickjs_rusty/
lib.rs

1//! quickjs-rusty is a a Rust wrapper for [QuickJS-NG](https://github.com/quickjs-ng/quickjs), a new Javascript
2//! engine by Fabrice Bellard.
3//!
4//! It enables easy and straight-forward execution of modern Javascript from Rust.
5//!
6//! ## Quickstart:
7//!
8//! ```rust
9//! use quickjs_rusty::Context;
10//!
11//! let context = Context::builder().build().unwrap();
12//!
13//! // Eval.
14//!
15//! let value = context.eval("1 + 2", false).unwrap();
16//! assert_eq!(value.to_int(), Ok(3));
17//!
18//! let value = context.eval_as::<String>(" var x = 100 + 250; x.toString() ").unwrap();
19//! assert_eq!(&value, "350");
20//!
21//! // Callbacks.
22//!
23//! context.add_callback("myCallback", |a: i32, b: i32| a + b).unwrap();
24//!
25//! context.eval(r#"
26//!     // x will equal 30
27//!     var x = myCallback(10, 20);
28//! "#, false).unwrap();
29//! ```
30
31// #![deny(missing_docs)]
32
33mod callback;
34pub mod compile;
35pub mod console;
36pub mod context;
37pub mod errors;
38pub mod module_loader;
39#[cfg(feature = "serde")]
40pub mod serde;
41pub mod utils;
42pub mod value;
43
44pub use libquickjs_ng_sys::{JSContext, JSValue as RawJSValue};
45
46pub use self::callback::{Arguments, Callback};
47pub use self::context::*;
48pub use self::errors::*;
49pub use self::value::*;