1 个不稳定版本
0.1.0 | 2017年12月14日 |
---|
#14 在 #perl
59 个星标 & 9 个关注者
6KB
132 代码行数
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的小子集。
工作正在进行中
该项目正在进行中。目前尚不清楚项目目标是否可实现,或者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)
依赖关系
~1.5MB
~41K SLoC