Crates.io | javy |
lib.rs | javy |
version | 3.1.0 |
source | src |
created_at | 2023-05-17 17:26:53.159663 |
updated_at | 2024-11-27 16:05:16.840993 |
description | Configurable JavaScript runtime for WebAssembly |
homepage | https://github.com/bytecodealliance/javy/tree/main/crates/javy |
repository | https://github.com/bytecodealliance/javy/tree/main/crates/javy |
max_upload_size | |
id | 867111 |
size | 122,313 |
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(|_| ())
});
To publish this crate to crates.io, run ./publish.sh
. You will likely need to
run git submodule deinit test262
so the working tree is small enough for the
publishing to succeed.