1 个不稳定发布
0.1.0 | 2016年1月7日 |
---|
#11 in #av
59 星 & 9 关注者
75KB
2K SLoC
Perl XS for Rust
Perl XS API 的高层Rust绑定。
示例
xs! {
package Array::Sum;
sub sum_array(ctx, array: AV) {
array.iter().map(|it| it.unwrap_or(0.0)).sum::<NV>()
}
}
更完整的示例请参阅 t/
目录中的 XSTest 软件包。
目标
- 安全性
- 正确性
- 速度
Perl XS API 故意采用低级设计,需要用户维护大量内部不变量,从而允许代码非常快。此软件包采用不同的方法,封装实现细节,以牺牲速度的代价提供更简单、更安全的API。
目前,此库专注于 Perl 的公共文档 API,这是 C 语言模块作者可用的子集。
正在进行中
此项目仍在进行中。目前尚不清楚项目目标是否可实现,或 API 是否在实际应用中有意义。
如何使用
Module::Install::Rust
将传统的 Perl 构建系统与 Cargo 集成,允许使用熟悉的 perl Makefile.PL && make
过程编译和安装 Rust 代码。例如,请参阅 t
目录下的测试软件包。
先决条件
- Perl 5.20+(用于64位数组方法)
- Rust 1.31+
测试
安装测试和基准测试所需的软件包
cpanm --installdeps .
运行测试
(cd t && perl Makefile.PL && make test)