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 下载

MIT 协议

54KB
1K SLoC

Nanny

silhouetteNanny 是一个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

依赖项