High-level bindings and serializers for a Wasm build of QuickJS.
Context
corresponds to a QuickJS JSContext
and Value
corresponds to a QuickJS JSValue
.
```rust use quickjswasmrs::Context;
let mut context = Context::default(); ```
will create a new context.
This crate provides optional transcoding features for converting between
serialization formats and Value
:
- messagepack
provides quickjs_wasm_rs::messagepack
for msgpack, using rmp_serde
.
- json
provides quickjs_wasm_rs::json
for JSON, using serde_json
.
msgpack example:
```rust use quickjswasmrs::{messagepack, Context, Value};
let context = Context::default(); let inputbytes: &[u8] = ...; let inputvalue = messagepack::transcodeinput(&context, inputbytes).unwrap(); let outputvalue: Value = ...; let output = messagepack::transcodeoutput(output_value).unwrap(); ```
QUICKJS_WASM_SYS_WASI_SDK_PATH
environment variable to the absolute path where you installed the wasi-sdk
For example, if you install the wasi-sdk
in /opt/wasi-sdk
, you can run:
bash
export QUICKJS_WASM_SYS_WASI_SDK_PATH=/opt/wasi-sdk
To publish this crate to crates.io, run ./publish.sh
.