1 个不稳定版本

0.1.0 2020年12月20日

#101 in #edge

MIT 协议

670KB
18K SLoC

C 17K SLoC // 0.1% comments Rust 755 SLoC // 0.0% comments

tskit的Rust绑定

CI tests

这个包提供了对rust的绑定,用于tskit

本包提供了以下内容

  1. 对tskit和kastore的C API的低级绑定。我们使用bindgen自动生成绑定。
  2. 结构体tskit_rust::TableCollection,它封装了tsk_table_collection_t。封装器目前不完整,仅支持节点、边、位点、突变和种群表。其余表“很快”就会实现。
  3. 一个错误处理系统,将tskit错误代码映射到rust错误,同时保留错误消息。

概述如下

  1. tskitkastore的源代码来自tskit 0.3.4,包含在subprojects/
  2. 这两个工具被编译进rust包。
  3. 然后,bindgen生成绑定。
  4. 最后,生成整个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