quickjs-wasm-rs

Crates.ioquickjs-wasm-rs
lib.rsquickjs-wasm-rs
version3.1.0
sourcesrc
created_at2022-03-14 21:34:03.150211
updated_at2024-05-07 20:17:29.169715
descriptionHigh-level bindings and serializers for a Wasm build of QuickJS
homepagehttps://github.com/bytecodealliance/javy/tree/main/crates/quickjs-wasm-rs
repositoryhttps://github.com/bytecodealliance/javy/tree/main/crates/quickjs-wasm-rs
max_upload_size
id550208
size135,033
javy-publish (github:bytecodealliance:javy-publish)

documentation

README

This crate is deprecated.

crates.io

The motivation for this change is explained in detail in https://github.com/bytecodealliance/javy/pull/618

We recommend using rquickjs as the high-level bindings for QuickJS.

quickjs-wasm-rs

High-level bindings and serializers for a Wasm build of QuickJS.

Bindings

JSContextRef corresponds to a QuickJS JSContext and JSValueRef corresponds to a QuickJS JSValue.

use quickjs_wasm_rs::JSContextRef;

let mut context = JSContextRef::default();

will create a new context.

Serializers

This crate provides optional transcoding features for converting between serialization formats and JSValueRef:

  • messagepack provides quickjs_wasm_rs::messagepack for msgpack, using rmp_serde.
  • json provides quickjs_wasm_rs::json for JSON, using serde_json.

msgpack example:

use quickjs_wasm_rs::{messagepack, JSContextRef, JSValueRef};

let context = JSContextRef::default();
let input_bytes: &[u8] = ...;
let input_value = messagepack::transcode_input(&context, input_bytes).unwrap();
let output_value: JSValueRef = ...;
let output = messagepack::transcode_output(output_value).unwrap();

Publishing to crates.io

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

Using a custom WASI SDK

This crate can be compiled using a custom WASI SDK. When building this crate, set the QUICKJS_WASM_SYS_WASI_SDK_PATH environment variable to the absolute path where you installed the SDK.

Commit count: 0

cargo fmt