Rust re-implementation of navis and nat core functions with a
focus on efficient algorithms for working with
rooted trees,
a special case of directed acyclic graphs (DAG) used to represent neurons.
We provide R and Python bindings.
The docs cover all three surfaces — the Rust core crate plus the Python and R bindings — and include a matrix of which functions are available in which language.
See the README for the navis and nat wrappers for instructions on installation and usage.
The package version is tracked in a single place: [workspace.package] version
in the root Cargo.toml. The Rust crates inherit it via
version.workspace = true and the Python package via maturin
(dynamic = ["version"]). To bump the version, edit that one field and run:
python scripts/sync-versions.pyThis propagates the version to R/nat.fastcore/DESCRIPTION (the only file that
needs a literal copy). CI checks that it stays in sync via
python scripts/sync-versions.py --check.