10 个版本 (5 个稳定版本)
3.1.0 | 2024 年 5 月 7 日 |
---|---|
3.0.0 | 2024 年 1 月 31 日 |
2.0.1 | 2023 年 9 月 11 日 |
1.0.0 | 2023 年 5 月 17 日 |
0.1.0 | 2022 年 3 月 14 日 |
#6 in #quick-js
每月 95 次下载
3MB
90K SLoC
此包已废弃。
关于此更改的动机在 https://github.com/bytecodealliance/javy/pull/618 中有详细说明
我们建议使用 rquickjs
作为 QuickJS 的高级绑定。
quickjs-wasm-rs
QuickJS 的 Wasm 构建的高级绑定和序列化器。
绑定
JSContextRef
对应于 QuickJS 的 JSContext
,而 JSValueRef
对应于 QuickJS 的 JSValue
。
use quickjs_wasm_rs::JSContextRef;
let mut context = JSContextRef::default();
将创建一个新的上下文。
序列化器
此包提供了可选的转码功能,用于在序列化格式之间以及与 JSValueRef
之间进行转换
messagepack
提供了使用rmp_serde
的quickjs_wasm_rs::messagepack
用于 msgpack。json
提供了使用serde_json
的quickjs_wasm_rs::json
用于 JSON。
msgpack 示例
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();
发布到 crates.io
要发布此包到 crates.io,请运行 ./publish.sh
。
使用自定义 WASI SDK
此包可以使用自定义的 WASI SDK 编译。在构建此包时,请将环境变量 QUICKJS_WASM_SYS_WASI_SDK_PATH
设置为 SDK 安装路径的绝对路径。