3个版本
使用旧的Rust 2015
0.1.2 | 2017年8月11日 |
---|---|
0.1.1 | 2017年8月9日 |
0.1.0 | 2017年8月4日 |
在WebAssembly中排名1164
26KB
334 行
rsjs是一个小型库,旨在提供一个方便的方式来连接Rust和JavaScript的世界。
它目前需要使用rust nightly通道和asmjs-unknown-emscripten
或wasm-unknown-emscripten
目标。有关设置开发环境的任何帮助,请参阅README。
JavaScript辅助工具
RSJS
提供了一些JavaScript辅助函数来存储和转换JavaScript对象,以便从Rust中使用。所有这些都可以通过JavaScript全局对象RSJS
在调用init
之后访问。
RSJS
全局
RSJS
是由init
创建的全局JavaScript对象。它包含所有辅助JavaScript函数以及一个对象表,用于保存Rust代码持有的JavaScript对象。有关更多详细信息,请参阅JSObject
。
RSJS.loadObject(索引)
从对象表中加载一个JavaScript对象并返回它。
RSJS.storeObject(js_object)
将对象存储到对象表中并返回索引。结果通常由js_obj!
包装成JSObject
。
私有辅助函数
RSJS.releaseObject(索引)
从对象表中删除对象。仅用于JSObject
的Drop
实现。释放仍然由JSObject
引用的对象将导致问题。
RSJS.copyStringToHeap(js_string)
将JavaScript字符串复制到Rust堆中并返回地址。字符串存储为一个32位无符号整数,包含缓冲区中16位代码单元(不是字节或字符!)的数量,后跟该数量个16位代码单元从UTF-16字符串。
由 js_string!
和 std::convert::From<JSObject> for String
实现。
RSJS.copyStringFromHeap(指针)
将存储在Rust堆上的String(如copyStringToHeap
所述)转换为JavaScript字符串。转换后内存将被释放,因此调用者应认为指针无效。