A cross-language library for working with causal graphs (DAGs) in Rust, Python, and WebAssembly.
- rust_core/: Core Rust implementation of DAGs and causal graph logic.
- python_bindings/: Python bindings using PyO3 and maturin.
- wasm_bindings/: WebAssembly bindings for use in JavaScript and Node.js environments via wasm-bindgen and wasm-pack
- r_bindings/: R bindings using extendr.
To build and develop this project locally, you will need:
- Rust (stable toolchain)
- Python 3.x with
pip
- Node.js (LTS recommended) with
npm
- R 4.2+
- make (usually pre-installed on Linux/macOS, available via build tools on Windows)
This library is actively developed and tested on:
- Windows (via WSL, or native MSVC toolchain for Rust + Rtools for R)
- Linux (Ubuntu, other distros)
- macOS
We provide a top‑level Makefile
to save you typing:
-
Build everything (Rust core + Python + WASM + R):
make all
-
Run all tests:
make test
Target | What it does |
---|---|
make core |
Builds only the rust_core crate. |
make python |
Builds & installs Python bindings. |
make wasm |
Builds WASM modules for JS/Node via wasm-pack |
make r |
Generates R wrappers via rextendr::document() . |
MIT