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
21KB
346 行
node-rs
这个crate提供了一个对node.js API的stdweb
友好接口。这是一个正在进行的开发项目。
API设计
我们在API设计遵循一些指导原则。
首先,当翻译名称时,Rust将使用以Rust为中心的大小写来命名类型和函数。这意味着类型将是PascalType
,通常与JavaScript中类型的样式相匹配。函数名称将是snake_case
,这与典型的JavaScript命名约定不同。
例如,setTimeout
变为set_timeout
。
其次,命名空间将遵循以下典型模式
global
名称将直接位于node_rs
crate顶层模块名称下- "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