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