rust bindings for tskit
This crate provides rust bindings to tskit.
This package provides the following:
- Low-level bindings to the C API of both
tskitandkastore. We use bindgen to automatically generate the bindings. - The struct
tskit_rust::TableCollection, which wrapstsk_table_collection_t. The wrapper is currently incomplete, supporting only node, edge, site, mutation, and population tables. The remaining tables will happen "soon". - An error handling system that maps
tskiterror codes torusterrors while preserving error messages.
The overview is:
tskitandkastoresource fromtskit 0.3.4are include insubprojects/- These two tools are compiled into the
rustpackage. - Then
bindgengenerates the bindings. - Finally, the entire rust package is generated.
The result is a rust library with all of these two C libraries statically compiled in.
Further, rust types and functions exist in the module name tskit_rust::bindings, allowing unsafe access to the low-level API.
In the future, we hope to develop a more "rusty" front-end, hiding the unsafe bits from client code.
Help wanted!
Quick start guide
Then, to look at the docs:
cargo doc --open