5个版本

使用旧的Rust 2015

0.1.4 2018年9月2日
0.1.3 2018年8月22日
0.1.2 2018年8月22日
0.1.1 2018年8月22日
0.1.0 2018年8月22日

17#webasm

每月下载量 36

MIT 许可证

21KB
346

node-rs

Documentation

这个crate提供了一个对node.js API的stdweb友好接口。这是一个正在进行的开发项目。

API设计

我们在API设计遵循一些指导原则。

首先,当翻译名称时,Rust将使用以Rust为中心的大小写来命名类型和函数。这意味着类型将是PascalType,通常与JavaScript中类型的样式相匹配。函数名称将是snake_case,这与典型的JavaScript命名约定不同。

例如,setTimeout变为set_timeout

其次,命名空间将遵循以下典型模式

  • global名称将直接位于node_rscrate顶层模块名称下
  • "module"名称将位于具有相同名称的Rust模块下。例如,JavaScript中的require('cluster').fork()变为Rust中的cluster::fork()

第三,内置模块不需要像JavaScript中那样导入。 node-rs将假定内置模块可以导入,因此所有模块例程都可以直接调用,而无需首先导入模块。为了支持运行时功能检测(例如,对于在较新版本的node.js中引入的模块),每个模块都将有一个initialize()函数,可以用来检查模块是否可用。

例如

use node_rs::cluster;

if let Some(_) = cluster::initialize() {
    // 'cluster' module is available
    cluster::fork();
}

最后,所有全局值都将通过函数调用访问。例如,global.process作为node_rs::process可用。

依赖项

~3MB
~69K SLoC