9 个版本
使用旧Rust 2015
0.0.9 | 2015年12月2日 |
---|---|
0.0.8 | 2015年11月12日 |
0.0.6 | 2015年10月13日 |
0.0.2 | 2015年9月21日 |
#575 在 内存管理
每月 22 下载
54KB
1K SLoC
Nanny
Nanny 是一个Rust库,它提供了一个围绕Node本地抽象的安全API。
Nanny 与 V8 嵌入式API协作,安全地监控垃圾回收对象的堆栈分配句柄。这确保了堆栈根的所有对象都由垃圾收集器安全跟踪。
一个好的保姆能保证托儿所的安全。
示例
一个完整的示例可以在 nanny-demo 仓库中找到。该示例使用 rust-bindings npm 包来完全自动化在Node中构建和请求Rust模块的过程。
Rust中的Node函数
一个JS函数在Rust中表示为一个接收 Call
对象并产生JS值或 Throw
常量(表示抛出了异常)的函数。该 Call
对象提供了对内存管理作用域的访问,该作用域安全地管理垃圾回收JS值的句柄根。
fn make_an_array(call: Call) -> JS<Array> {
let scope = call.scope; // the current scope for rooting handles
let mut array: Handle<Array> = Array::new(scope, 3);
try!(array.set(0, Integer::new(scope, 9000)));
try!(array.set(1, Object::new(scope)));
try!(array.set(2, Number::new(scope, 3.14159)));
Ok(array)
}
许可证
MIT