javy 3.0.0

Configurable JavaScript runtime for WebAssembly
Documentation

Uses QuickJS through the rquickjs crate to evalulate JavaScript source code or QuickJS bytecode.

Refer to the crate level documentation to learn more.

Example usage:

use anyhow::anyhow;
use javy::{Runtime, from_js_error};
let runtime = Runtime::default();
let context = runtime.context();

context.with(|cx| {
    let globals = this.globals();
    globals.set(
        "print_hello",
        Function::new(
            this.clone(),
            MutFn::new(move |_, _| {
                println!("Hello, world!");
            }),
        )?,
    )?;
 });

context.with(|cx| {
    cx.eval_with_options(Default::default(), "print_hello();")
         .map_err(|e| from_js_error(cx.clone(), e))
         .map(|_| ())
});

Publishing to crates.io

To publish this crate to crates.io, run ./publish.sh.