1 个不稳定版本
0.1.0 | 2020年12月20日 |
---|
#101 in #edge
670KB
18K SLoC
tskit的Rust绑定
本包提供了以下内容
- 对tskit和kastore的C API的低级绑定。我们使用bindgen自动生成绑定。
- 结构体
tskit_rust::TableCollection
,它封装了tsk_table_collection_t
。封装器目前不完整,仅支持节点、边、位点、突变和种群表。其余表“很快”就会实现。 - 一个错误处理系统,将tskit错误代码映射到rust错误,同时保留错误消息。
概述如下
tskit
和kastore
的源代码来自tskit 0.3.4
,包含在subprojects/
- 这两个工具被编译进rust包。
- 然后,
bindgen
生成绑定。 - 最后,生成整个rust包。
结果是包含这两个C库的静态编译的rust库。此外,在模块名称tskit_rust::bindings
中存在rust类型和函数,允许unsafe
访问低级API。
未来,我们希望开发一个更“rusty”的前端,从客户端代码中隐藏unsafe
部分。
需要帮助!
快速入门指南
git clone https://github.com/molpopgen/tskit_rust
cd tskit_rust
git submodule update --init --recursive
cargo build
cargo test
然后,查看文档
cargo doc --open
依赖关系
~0.3–2.7MB
~54K SLoC